TSM migration processes

Posted on 2010-11-29
Last Modified: 2013-11-14
Hi ,

I want to understand TSM migration process, there are some migration scripts which are scheduled in crontab on tsm server, which runs the migration process. Following is the commands in the migration script, just want to know what exactly it means :-

# Reset number of migration processes for all other disk pools:
dsmadmc -id=admin -password=admin upd stg db_arch_disk_pool migpr=1
dsmadmc -id=admin -password=admin upd stg db_disk_pool migpr=1
dsmadmc -id=admin -password=admin upd stg db_arch_disk_pool migpr=1
dsmadmc -id=admin -password=admin upd stg windows_san migpr=1
# Turn off migration for all other disk pools:
dsmadmc -id=admin -password=admin upd stg db_arch_disk_pool hi=100 lo=90
dsmadmc -id=admin -password=admin upd stg db_disk_pool hi=100 lo=90
dsmadmc -id=admin -password=admin upd stg db_arch_disk_pool hi=100 lo=90
dsmadmc -id=admin -password=admin upd stg windows_san hi=100 lo=90
# Set number of migration processes higher for mis_unix_xxx disk pools:
dsmadmc -id=admin -password=admin upd stg mis_unix_prod migpr=2
dsmadmc -id=admin -password=admin upd stg mis_unix_temp migpr=1
# Turn on migration for mis_unix_xxx disk pools:
dsmadmc -id=admin -password=admin upd stg mis_unix_prod hi=1 lo=0
dsmadmc -id=admin -password=admin upd stg mis_unix_temp hi=1 lo=0

so, just want to know what these commands are exactly doing.

Question by:virgo0880
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 3
  • +1

Accepted Solution

renever earned 100 total points
ID: 34237759

dsmadmc -id=admin -password=admin
- logon to tsm server

upd stg <storage pool name> migpr=1
-  sets the number of sessions for migration (is number of tapedrives)
- you have 4 storage pools

upd stg <storage pool name> hi=100 lo=90
- sets the high and low watermark for migration. (normally 90-70)
- meaning if the amount of data is more than 100% (high) then it will move data to the next storage pool (see q stgp) until it reaches 90% (low again)
- this is used to keep free space available in the storagepool
- in your case it stops the migration of the storage pools. (it will not use tapedrives so it can be used for other migrations

upd stg mis_unix_prod migpr=2
- probably big server as it needs 2 tapedrives

admin upd stg storageppolname hi=1 lo=0
- set the value for the storage pool to 1, 0 (could be 0,0) which will migrate the other storage pools to the next destionation

In my opninion the script is used to handle the migration process with to less tapedrives.

You can add these commands also in TSM scheduling, you don't need to enter your password in here.
There are probably multiple cron jobs. You can also use one maintenance script where you can use the migrate command

>>-MIGrate STGpool--pool_name--+-------------------+------------>
   '-DUration--=--minutes-'  '-REClaim--=--+-No--+-'  

Commands can be entered
migrate stgpool <name> dur=<minutes> wait=yes

You can set the number of minutes that a migration may last
and it will wait till the job has been finished (or exceeded the duration time)
You can add multiple lines in the script.

Or use two scripts
If you have two tapedrives you can create two scripts and balance it yourself (sizes)



help upd stgp
on tsm server may help


Expert Comment

ID: 34237817
Hello agin

You can also use parallel and serial to control the process

Regards again
LVL 62

Assisted Solution

gheist earned 50 total points
ID: 34238273
It is bad idea to fill disk pools completely 75/50 woul make sure no client gets rejected for full storage...
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.


Author Comment

ID: 34253362
Hi renver,

Thanks for that info.  So in the above commands, migpr=1 means it will use only one tape that right ? then how come migration ends immediately as we have given it one tapedrive. Also is there any way to find out how much time is taken by each migration process to be complete through query in actlog which would be helpful to me to get the statistics.

Whether "upd stg <storage pool name> hi=100 lo=90" this command will set the migration process off immediately ...?

LVL 62

Expert Comment

ID: 34256219
It is one-minute timer. It will not migrate at the same moment, but really soon.
hi=1 lo=0 will migrate immediatly all data out and prepare pool for deletion.

Expert Comment

ID: 34256831

You can see the progress qith
q pr

you will see migration processes (if any)

You can also check with

q stgp

you can verify if the storage pool has been migrated completely
(It is possible that the data has been migrated to the next storage pool but that the data is still held in the diskpool for quicker restores

q stgp f=d

and check for utilized and migratied percentage
h q stgp
LVL 68

Assisted Solution

woolmilkporc earned 100 total points
ID: 34257627
select max(ACTIVITY) Activity, avg(END_TIME-START_TIME) "Avg. Duration",  -
ENTITY "Pool                                "  from summary -
where ACTIVITY='MIGRATION' group by entity order by 2

Author Comment

ID: 34259182
Based on this query, I am getting following output :

ACTIVITY                      Avg. Duration         Pool                                
------------------ ------------------------          ------------------------------------
MIGRATION                 0 00:03:20.032967 DB_ARCH_DISK_POOL                  
MIGRATION                 0 00:08:03.625000 MIS_UNIX_TEMP                      
MIGRATION                 0 00:17:32.433333 MIS_UNIX_PROD                      
MIGRATION                 0 05:48:25.916666 WINDOWS_SAN                        
MIGRATION                 0 15:36:18.633333 DB_DISK_POOL    

I'm not understanding the "avg.duration" part what exactly it means, its the number of minutes taken to complete. Also, if i want it for a particular can i get it.

LVL 68

Expert Comment

ID: 34261885
Yes, it's days hours:minutes:seconds.decimal.places. . .

Basically it means the average duration of the migration processes for a particular storage pool, calculated over all processes recorded in the summary table.

You could add "count(*)" to the query to get the number of processes per pool over which the average value has been calculated.

Issue Q STATUS and look for "Activity Summary Retention Period" to find out over which time period these processes have been recorded.

Attached is an example of a detail report for yesterday, Dec 01, 2010

ENTITY "Pool                                "  from summary -
where -
START_TIME>='12/01/2010 00:00:00' -
and -
START_TIME<='12/01/2010 23:59:59' -
and -
order by ENTITY

Open in new window

LVL 62

Expert Comment

ID: 34268009
hi=100 is a bad idea as it might make clients handle storage shortage
hi=80 lo=20 will protect from such situations.

Author Comment

ID: 34268397
Thanks for you experts suggestions...guys.


I am trying to integrate count(*) with the query but getting following error

"ANR2938E The column 'ACTIVITY' is not allowed in this context; it must either be named in the GROUP BY clause or be nested within an aggregate function.

I am trying to execute this query :

select ACTIVITY, START_TIME, END_TIME, END_TIME-START_TIME "Duration", ENTITY "Pool", count(*) as "Sessions" from summary where START_TIME>='11/30/2010 00:00:00' and START_TIME<='11/30/2010 23:59:59' and ACTIVITY='MIGRATION' order by ENTITY
What is wrong in this query.


LVL 62

Expert Comment

ID: 34268485
You need to reduce difference for SAN and DB pools to make sure migration is not so long
Asking for second time for
 q stgp f=d

LVL 68

Expert Comment

ID: 34268535
count(*) was meant for the first quey I gave you, which is an aggregated query (containing "group by").
The second one is a detail query, and aggregate functions like count(*) are not allowed in such queries.


Author Comment

ID: 34268958
ok sir, got it working now. Thanks for that


Author Closing Comment

ID: 34284961
Splitting the points.

Featured Post

Increase Agility with Enabled Toolchains

Connect your existing build, deployment, management, monitoring, and collaboration platforms. From Puppet to Chef, HipChat to Slack, ServiceNow to JIRA, Splunk to New Relic and beyond, hand off data between systems to engage the right people.

Connect with xMatters.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I use more than 1 computer in my office for various reasons. Multiple keyboards and mice take up more than just extra space, they make working a little more complicated. Using one mouse and keyboard for all of my computers makes life easier. This co…
The article will include the best Data Recovery Tools along with their Features, Capabilities, and their Download Links. Hope you’ll enjoy it and will choose the one as required by you.
To efficiently enable the rotation of USB drives for backups, storage pools need to be created. This way no matter which USB drive is installed, the backups will successfully write without any administrative intervention. Multiple USB devices need t…
This tutorial will walk an individual through the steps necessary to install and configure the Windows Server Backup Utility. Directly connect an external storage device such as a USB drive, or CD\DVD burner: If the device is a USB drive, ensure i…

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question