A lot of customers are using Content Manager 8 in connection with IBM Spectrum Protect, former IBM TSM SSAM, or other WORM Storage system to meet there compliance requirements. But in some cases you will have to migrate the content to a new storage system with or without WORM functionality. If the new system is not longer SSAM/Spectrum Protect there is out of the box no satisfying way to move the data. Sure you can use the Ressource Manager replication feature but you will need to keep the old Ressource Manager in you CM system till the end. So a better way to do is to migrate the data with the CM8 RM migration feature. If you configure the subsequent migration of you already stored data as it is described in the technote “Adding migration rules to an existing migration policy” you will face the issue that the CM8 systemadministration client wont let you change the order of you migration policy because the retention volume must be last instance in such a migration policy.

But in this article I will guide you how to how to get around that. In the following chapters I will describe how to move the data from SSAM to a new NAS storage volume. But it is the same way for all other storage volumes you can attach to CM8.

Another big advantage of this method is, that you will have no downtime during the content migration. And you end user will be not affected of this procedure. The migration is a backround task and will not effect you daily business.

At first you will need to add the new storage volume to you CM system. So check if the storage class of you required storage system is already configured in CM8. If not add it.

Storage Class Properties - CMDATA 
* CM DATA 
Lual destnaton 
Device manager : 
Remote destnaton 
Resource manager :

Based on the device create a new storage volume.

File System Volume Properties 
Mount point: 
*fault path: 
Maximum su&iir ectories: 
Thr eshold (disable volume): 
Resume (enable volume): 
Storage class: 
File system size (ME): 
Free space (ME): 
Assignmen t 
@ Unassigned 
C) Qverflovv 
C) Assigned 
- CMDATA 
CMDATA 
10000 
Assign to one or more groups: 
D JOURNALGROUP 
D MAIL GROUP 
Offine 
Offine locaton: 
Suspend storage 
Cancel 
Help

Create a new storage group, migration policy and workstation collection.

Storage Group Properties 
Stor age systems 
- CMDATAGROUP 
CMDATAGROUP 
Assign I or more storage systems to this storage group 
Volume 
Z] CMDATA 
D DATA 
D JOURNAL 
D MAIL 
Storage Class 
ASLE 
FIXED 
Status 
Assigned 
Assigned 
Assigned 
Assigned
New Migration Policy 
Storage Class 
CMDATA 
Move to remote storage class: 
Keep migrated content in 
CMDATA has stored. 
Retenton —iod (days) 
Move up 
Move Down

Now you can modify you existing itemtypes with the new collection so that all new content is directly written to the new storage system. If you did that the first part is done.

Now we need to configure the migration of the already archived content. For that we need to analyze the configuration of the current archiving setup. At add the new created volume to the existing storage group of the SSAM data. In my case it was the “MAILGROUP”. This is a mandatory step because without adding this to the storage group you wont be able to create the migration jobs later.

IBM Content Manager 
IBM Content Manager 
icmnlsdb 
Library Server Parameters 
Resource Managers 
Configurations 
Device Managers 
Storage Classes 
Storage Systems 
File System Volumes 
Video-charger Volumes 
Media Archive Volumes 
Tivoli Storage Manager Volumes 
8Loas Volume 
Storage Groups 
Contents of: Storage Groups 
JOURNALGROUP 
MAILGROUP 
GROUPOI

Computergenerierter Alternativtext:
Storage Group Properties 
Stor age systems 
MAILGROUP 
MAILGROUP 
Assign I or more storage systems to this storage group 
Volume 
Z] CMDATA 
D DATA 
D JOURNAL 
Z] MAIL 
Storage Class 
ASLE 
CMDATA 
Status 
Assigned 
Assigned 
Assigned 
Assigned

After this you will need to modify the existing migration policy of the SSAM workstation collection. And here you will see that the sysadmin client wont let you change the order. Because a retention volume like SSAM is must be the last instance.

Migration Policy Properties - DR550NLY 
* DR550NLY 
Storage Class 
Cl Move to remote storage class: 
Retention (days) 
Move Up 
C)) Keep migrateci content in cache

So if we want to do this we need to change this directly in the Ressource Manager database. At first I like to check the defined collections in the RMCOLLECTIONS table.

C: \Windows\system32>db2 select col_collid, col_collname from rmcollections 
COL COLLID 
COL COLLNAME 
1 CBR.CLLCT881 
2 TABLE.CLLCTßß1 
NAIL . CLLCT881 
4 
JOURNAL . CLLCT881 
4 record(s) selected

As you can see we have 4 collections and we will face on the MAIL.CLLCT001. Next I want to know how much items are stored in each collection. You can select this in the RMOBJECTS table.

Computergenerierter Alternativtext:
C: \Windows\system32>db2 select distinct obj_collectionid from rmobjects 
OBJ COLLECTIONID 
3 record(s) selected

Computergenerierter Alternativtext:
C: \Windows\system32>db2 select count (s) from rmobjects where obj_collectionid=l 
565 
1 record(s) selected 
C: \Windows\system32>db2 select count (s) from rmobjects where obj_c011ectionid=3 
24518258 
1 record(s) selected 
C: \Windows\system32>db2 select count (s) from rmobjects where obj_c011ectionid=4 
1 record(s) selected

So for the MAIL.CLLCT001 collection we have here 24.518.258 objects stored they will need to be migrated. The next step is to identify the sotrage class ID that are used for these object. You can select this also in the RMOBJECTs and RMSTORAGECLASS tables

V: select distinct obj_stgclassid from rmobjects 
OBJ STGCLASSID 
2 record(s) selected

Computergenerierter Alternativtext:
C: \Windows\system32>db2 select stc_stgclassid,stc_stgclassname from rmstorageclass 
STC STGCLASSID 
STC STGCLASSNAME 
1 FIXED 
2 TABLE 
3 DRSS8 
4 
C+IDATA 
4 record(s) selected

So we see that all data was stored on the FIXED and DR550 class. So we need to move the content from storage class ID 3 “DR550” to storage class ID 4 “CMDATA”. The next point is to identify the volume IDs from the RMVOLUMES table because we need this information later on.

Computergenerierter Alternativtext:
C: \Windows\system32>db2 "select VOL STGCLASSID,VOL LOGICALNAI•IE from rmvolumes" 
VOL STGCLASSID VOL LOGICALNAME 
1 DATA 
2 BLOBS 
3 MAIL 
3 JOURNAL 
1 C"DATA

Now we have all necessary information to modify the existing migration policy. Lets select the configured migration policies from RMMGTCLASS table. We need to focus on ID 3 MAIL.

C: \Windows\system32>db2 select from rmmgtclass 
MGTCLASSID 
NGC MGTCLASSNAME 
MGTCLASS 
2 TBLCLASS 
3 DRSSONLY 
4 
CMDATA 
4 record(s) selected

Now check the RMMGTTRANSITION table for the MAIL data.

Computergenerierter Alternativtext:
C: \Windows\system32>db2 select from rmmgttransition 
MGP MGTCLASSID MGP SEQUENCENUM MGP STGCLASSID MGP SINCEENTER MGP MIGTYPE 
4 record(s) selected.

The MGP_SINCEENTER describe the length of stay on the volume and “-1” means forever. So at first we need to change it from forever to e.g. 1 day.

C: update R"IGTTRANSITION set blGP SINCEENTER=I where blGP MGTCLASSID=3 
08288881 The SQL command completed successfully.

If you now take a look in the migration policy in the sysadmin client you will see this.

Migration Policy Properties - DR550NLY 
* ONLY 
Storage Class 
Move to remote storage class: 
Keep migrated content in 
Retention (days) 
Move up 
Move Down

In the next step we need to add the “CMDATA” storage class to the migration policy.

Computergenerierter Alternativtext:
C: insert into R"IGTTRANSITION values 
08288881 The SQL command completed successfully.

So we added “CMDATA” with sequence number 2 and with SINCEENTER -1. The result in the sysadmin client is this.

Migration Policy Properties - DR550NLY 
* ONLY 
Storage Class 
CMDATA 
Move to remote storage class: 
Keep migrated content in 
Retention (days) 
Forever 
Move up 
Move Down

And this is the final setup before we can start the migration. Keep in my that the sysadmin client wont let you configure this! You will need to manage it in the database.

So now you can create the migration tasks at it was described in the technote I provided before. You will need to add all the migrationjobs to the RMMIGRATIONTASKS table. Use the following SQL statement and modify it to your needs.

INSERT INTO RMMIGRATIONTASKS (LIBRARYID, ITEMID, VERSION, COLLECTIONID, CRNTVOLUMEID, COLLECTIONNAME, CRNTTRANSITION, NEXTTRANSITION, ACTIONDATE) SELECT OBJ_LIBRARYID, OBJ_ITEMID, OBJ_VERSION, OBJ_COLLECTIONID, OBJ_VOLUMEID, RTRIM(COL_COLLNAME), MGP_SEQUENCENUM-1, MGP_SEQUENCENUM, ’08/09/2018′  FROM RMOBJECTS objs, RMCOLLECTIONS colls, RMMGTTRANSITION mgtt WHERE objs.OBJ_MGTCLASSID=mgtt.MGP_MGTCLASSID AND objs.OBJ_STGCLASSID=mgtt. MGP_STGCLASSID AND objs.OBJ_COLLECTIONID=colls.COL_COLLID AND colls.COL_MGTCLASSID=mgtt.MGP_MGTCLASSID AND objs.OBJ_STATUS IN (‘A’,’B’) AND mgtt.MGP_SINCEENTER<>-1 AND objs.OBJ_ACTIONDATE=’12/31/9999′ AND objs.OBJ_COLLECTIONID=3 AND objs.OBJ_STGCLASSID=3

In my case the RMMIGRATIONTASKS table was filled with the amount of objects I have on the DR550 volume.

C: select count (s) from rmmigrationtasks 
24518258 
1 record(s) selected.

After the RM migrator moved the data and processed all the jobs from the RMMIGRATIONTASK table I doublechecked the storage class ID in the RMOBJECTS table.

Computergenerierter Alternativtext:
: \Windows\system32>db2 select distinct obj_stgclassid from rmobjects 
STGCLASSID 
3 record(s) selected . 
: \Windows\system32>db2 select count (x) from rmobjects where obj_stgc1assid=4 
24561178 
1 record(s) selected .

Now all the objects reside on the new storage class “CMDATA”.

At the end I will give you also some TSM settings tips, because in some cases the TSM settings are not suitable for mass migration. Connect to the SSAM instance with “dsmadmc” and query the options of the SSAM.

Computergenerierter Alternativtext:
Protect: TSM>q opt 
Server Option 
Corm T i meOut 
fPOOISi ze 
mess ageFormat 
Alias Halt 
Explnterval 
EventServer 
DISPLAYLFINFO 
mirrorRead LOG 
mirrorWrite LOG 
Move8atchSize 
Restorelnterval 
NOBUFPREfetch 
RE-Qsysauthoutfile 
DBPAGEShadow 
MsgStackTrace 
LogWarnFuIIPerCe- 
ThroughPutTimeTh- 
reshold 
Resource Timeout 
Admin0nC1ientPort 
IMPORTMERGEUsed 
NDMPContr01 Port 
SHREDding 
TCPPort 
HTTPPort 
TCPBufsize 
Commmethod 
ShmPort 
UserExit 
As si stVCRRecovery 
AcsTimeoutX 
ACSQuickInit 
SNMP SubagentHOSt 
TECHost 
UNIQUETECevents 
Async 1/0 
3494Shared 
SANdiscovery 
SSLTCPADMINPort 
Option 
32768 
HALT 
Normal 
Setting 
Parallel 
Yes 
18, aee 
Automatic 
Iseo 
1580 
32768 
TCPIP 
1510 
Ves 
127.e.e.1 
Off 
Server Option 
ld1eTimeout 
LogPooISi ze 
Lan uaøe 
E xpQuiet 
ReportRetrieve 
mirrorRead DB 
mirrorWrite DB 
TxnGroupMax 
moveSizeThresh 
Disab1eScheds 
AuditStorage 
SELFTUNEBUFp001s- 
ize 
D3PAGESHADOWFi1e 
QueryAuth 
ThroughPutDataTh- 
reshold 
NOPREENPT 
TEC UTF8 Events 
NORETRIEVEDATE 
DUSLOOKUP 
NDMPPortRange 
SanRefreshTime 
T cpAdmi nport 
TCPI•li ndowsi ze 
TCPNoDe1ay 
msglnterval 
FileExit 
FileTextExit 
AcsAccessId 
AcsLockDrive 
SNMPSubagentPort 
SNMPHeartBeatInt 
TECPort 
UNIQUETDPTECeven- 
SHAREDLIBIDLE 
CheckTrai1erOnFr- 
SSLTCPPort 
Option Setting 
512 
AMENG 
Normal 
Sequential 
256 
Yes 
dbpgshdw. bdt 
None 
Yes 
Isee 
64512 
Yes 
1521

Here in this case we increased the MaxSessions to 50 for the SSAM instance.

==> setopt maxsession 50

We also changed the maximum number of mount points for the node that is used by ICMRM.

Computergenerierter Alternativtext:
• TSM>q node desfra1na8Ø2 
Protect. 
Node Name: 
Platform: 
Client OS Level: le.øø 
Client Version : 
Policy Domain Name: 
Last Access Date/Time: 
DESFRALNAee2 
IC*IRM 
Version 6, release 2, 
ARCHIVE 
08/13/2018 
Days Since Last Access: 
Password Set Date/Time 
: 08/13/2018 
Days Since Password Set: 
Invalid Sign-on Count 
Locked? : 
No 
Contact : 
Compression : 
Client 
Archive Delete Allowed? : 
Yes 
Backup Delete Allowed? : 
Yes 
Registration Date/Time: 
11/0/2808 
Registering Administrator: 
ADMIN 
Last Communication method Used: 
Tcp/lp 
3, 743 
3e8, 2gg 
23 .øg 
96 . 87 
: e.øe 
e.ee 
level 5.2 
Bytes Received 
Bytes Sent 
Duration Of 
Pct. IdIe Wait 
PCt. Comm. Wait 
PCt. Media Wait 
Last Session: 
Last Session: 
Last Session : 
Last Session: 
Last Session 
Last Session 
Optionset : 
URL : 
Node Type: Client 
Password Expiration Period: 
Kee Mount Point? : 
No 
Joints 
Auto Filespace Rename . 
Validate Protocol 
No 
TCP/IP Name: 
DESFRALNAee3 
TCP/IP Address: 
le. las. 237.188 
Globally Unique ID: 
43. fe.2a.ge. 11.e8.86.3g.øe.15.sd.6S.42.ød 
Transaction Group Max: 
Data "rite Path: 
Data Read Path 
ANY 
Session Initiation: ClientOrServer 
High-level Address : 
Low-level Address: 
Collocation Group Name: 
Proxynode Target : 
Proxynode Agent : 
Node Groups : 
Email Address :

update node <NODENAME> maxnummp=50

And last but not least we also changed the TSM_MAX_POOLED_CONNECTIONS parameter to 20 for the ICMRM.

Computergenerierter Alternativtext:
Resource Manager Administrat 
mformatm 
Navlgatlon : Home 
@ https://10calhost:94d3,ficmrm/admin,5sf/advanced_params.jsp 
Home 
Services 
Prüfprogramm 
Prüfbericht 
Letztes 
Encryptor 
Erweiterte Parameter 
Nachrichtentext 
Gesamtanzahl der Seitem 82 
Erstes Vor • 
Name 
19 
Nächstes 
Einträge pro Seite 
Value 
10 
Aktualisieren 
TSM CONNECTION TIMEOUT 
TSM 
TSM 
TSM 
MAX POOLED CONNECTIONS 
MAX WAIT FOR FREE CONNECTION 
pARTlAL RETRIEVE DISABLED 
TSM WAIT FOR FREE CONNECTION 
VALIDATE 
LSITEMS COUNT 
VALIDATE LSITEMS PROCESSED COUNT 
VALIDATE LSITEMS TOTALITEMS COUNT 
60 
true 
20 
false 
true 
250 
7350658 
7350658 
7356632

Now you have migrated your content from an WORM storage to another storage system with CM8 on-board features.

If you have any questions, do not hesitate to contact me.

Over and out :-).

9 thoughts on “IBM Content Manager – Move retention protected content from SSAM/Spectrum Protect to another (WORM) storage system

  1. Have you ever considered creating an e-book or guest authoring on other sites?
    I have a blog based on the same topics you discuss and
    would love to have you share some stories/information. I know
    my viewers would enjoy your work. If you’re even remotely interested, feel free to send me an email.

  2. Hello, I think your site might be having browser
    compatibility issues. When I look at your blog site in Ie, it
    looks fine but when opening in Internet Explorer, it has some overlapping.

    I just wanted to give you a quick heads up! Other then that, great blog!

Leave a Reply

Your email address will not be published.