Centera to ECS Migration - ECSSync
Centera to ECS Migration - ECSSync
Topic
ECS PS Procedures
Selections
ECS Professional Services Procedures: Centera to ECS Migration - ECSSync
REPORT PROBLEMS
If you find any errors in this procedure or have comments regarding this application, send email to
[email protected]
THIS DOCUMENT IS RESTRICTED FOR THE INTERNAL USE OF EMC CORPORATION (“EMC”)
ONLY. THIS DOCUMENT AND THE INSTRUCTIONS CONTAINED HEREIN ARE FOR USE BY
APPROVED EMC SERVICE PERSONNEL ONLY. ANY USE OF THIS DOCUMENT AND/OR ITS
INSTRUCTIONS BY ANYONE OTHER THAN AUTHORIZED EMC SERVICE PERSONNEL
(“UNAUTHORIZED USER”) IS NOT AUTHORIZED, LICENSED OR PERMITTED BY EMC.
UNAUTHORIZED USER ASSUMES SOLE AND COMPLETE RESPONSIBILITY AND RISK FOR ANY
AND ALL LOSSES OR DAMAGES ARISING OUT OF OR IN CONNECTION WITH ANY SUCH
UNAUTHORIZED USE.
Dell, EMC, Dell EMC and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other
trademarks may be the property of their respective owners.
Page 1 of 26
Contents
Preliminary Activity Tasks .......................................................................................................3
Read, understand, and perform these tasks.................................................................................................3
Page 2 of 26
Preliminary Activity Tasks
This section may contain tasks that you must complete before performing this procedure.
Table 1 List of cautions, warnings, notes, and/or KB solutions related to this activity
2. [ ] This is a link to the top trending service topics. These topics may or not be related to this activity.
This is merely a proactive attempt to make you aware of any KB articles that may be associated with
this product.
ECS Top Service Topics
Page 3 of 26
How to Perform a Centera to ECS Migration using ECSSync 3.x
This procedure provides the steps to migrate from Centera to ECS/CAS using ECSSync
Prerequisites:
Minimum software versions:
Sync 3.1
ECS 3.0
Centera 4.2
Application SDK 3.1.544
Required ports: 3218,22 and 25
Delivery folks had to have gone through the ECS migration workshop and shadowed up to 2 sync
migrations
Note: Sync does not support migrating advanced retention data. Native must be used.
Note: CUA is not supported on ECS. Send an email to [email protected] if you require assistance
on the replacement options. Sync does have a CUA plugin to migrate onto another gateway or NAS.
Note: Refer to https://inside.emc.com/docs/DOC-197329 this includes the pros and cons between using
Native and Sync
Overview:
ECSSync is an external tool developed by the Object EMC Development team. The tool comes pre-
configured as an OVA to be easily deployed into a customer’s ESX environment. The tool supports
Centera and Atmos/CAS to ECS CAS, S3 to S3, Atmos Rest to ECS and nas to nas. Unless it’s a dark
site this service can be performed remotely.
ECSSYNC flow:
Object is read from Clip List
Object is transferred
Object is verified
Database is updated as an error or verified
Next object is processed
ECS Sync is multi-threaded to ensure parallelism and performance
ECS Geo replication will maintain VDC synchronization
ECSSync OVA
OVA bundle includes.
CentOS7
16B RAM
200 GB disk (only 80GB is used up front)
Single NIC at 1GB or 10GB
Page 4 of 26
Quad core
MariaDB
SDK binaries
Sync scripts
Xml templates
Java
Note: Reach out to [email protected] for assistance on a manual install If the customer cannot
support the OVA
Reference sites:
Following sites will assist with gaining information or assistance
PS assistance: [email protected]
ECS CSE: [email protected]
ECS Community [email protected]
ISV Validation: http://vr.solarch.lab.emc.com
Centera Community tools https://community.emc.com/docs/DOC-2393
PS Services breakdown: https://inside.emc.com/docs/DOC-197329
ECS Hardware: https://support.emc.com/products/36913_ECS-Appliance-
Hardware/Documentation
OVA download location: https://github.com/EMCECS/ecs-sync/releases
Page 5 of 26
Design:
Below is an example of how to design a migration to gain optimal speed.
Multiple sync servers can be deployed; rule of thumb is 1 sync server for every 2 Centera access
nodes.
Best practice is try not go over 4 servers per site with each server running no more than 2 jobs
To speed up the migration ask the customer for more access nodes if they have less than 4, this is
non-intrusive and only requires an Ethernet cable to be run.
Always obtain the health reports prior to the migration to build out the migration configuration guide
Design example: 4 applications, Centera A and B and VDC C and D, 8 access nodes
Request 4 sync servers for each site. Prod site has sync 1-4 and dr has sync 5-8
Obtain a clip list from the 4 applications
Run 2 jobs on sync 1, 2. 5 and 6 for app 1 and 2 ,one job is app 1 and the other job is app 2
on each server, use the other 4 servers for app 3 and 4
If the customer wants to do 1 app at a time, split the list by 8,run 1 job per server
Migration speed.
For objects less than 250KB expect 1.5 Million clips a day per job per server to get migrated and
validated
For objects over 250KB Expect 2TB a day per job per server
These are conservative numbers, best be low then high, speeds up to 8TB and 3M objects a day per
server has been observed
Note: To perform the migration remotely establish an ESRS connection to either the Centera or ECS and
ssh over to the sync server or open a webex session
Page 6 of 26
mv ifcfg-ensxx ifcfg-ensxx.org
vi ifcfg-ensxx enter the following parameters
DEVICE="ensxx"
ONBOOT=yes
BOOTPROTO=static
IPADDR=
NETMASK=
GATEWAY=
DNS1=
Reboot
Verify the hostname is correct
Bring up the interface Enter:
ifup /etc/sysconfig/network-scripts/ifcfg-ensxx
Ping the gateway to verify network connectivity
Centera Preparation
For every pool you will need to update each profile to create a merged pea file for the source and target.
11. [ ] Using Centera viewer login into the Centera’s as admin:centera, if the admin password does not
work ask the customer to log you in
12. [ ] Validate if advanced retention is enabled, if it is sync cannot be used, you must use native. The
health report will have this information as well. Enter show features
Note: Cluster, AuditArchive ,SystemArchive and Console are system pools, they do not get migrated.
14. [ ] For each pool enter show pool detail <pool> to get the profile mapping.
Page 7 of 26
15. [ ] Enter update profile <profile name>. Take all of the defaults and generate a pea file
16. [ ] Repeat the steps above on the replica, to get the ip of the replica enter
show cluster replication
1. [ ] Once you have the 2 pea files, open both pea files with wordpad,
2. [ ] On the DR pea file copy what is highlighted below
Page 8 of 26
3. [ ] On the source pea file paste in the highlighted area from the DR pea file. The secret should be
the same with different cluster id’s, save the file as the final pea file.
Page 9 of 26
2. [ ] Login into the sync server, ecssync:ecs-sync-ova
3. [ ] Create a directory in /home/ecssync called pea, Copy or paste the pea file to that directory.
Repeat for all other pea files.
4. [ ] Verify if CE+ is enabled Enter
show security all
5. [ ] Verify if retention classes are configured Enter
show retention all
Retention class name Period
-------------------------------------------------
dx01 5 years
-------------------------------------------------
Note: If there are retention classes, you have to configure the same class name on the ECS
namespace
ECS Preparation
1. [ ] Login into ECS using a browser: Default is root:ChangeMe
2. [ ] To get the ECS sn# go into cli as admin:ChangeMe enter:
sudo xdoctor –topology
3. [ ] Create the VDC’s, replication group and storage pool if it hasn’t been done so already. Refer to
the ecs install procedure for guidance
Note: All configuration changes made on ECS will automatically get pushed to the other VDC(s)
4. [ ] Ensure D@RE (server side encryption) is licensed, this is a free license which has to be enabled
on the namespace, go to settings > Licensing, if the license is not visible it hasn’t been installed DO
NOT proceed if this license is not enabled. Reach out to the account team to inform them to obtain a
D@RE license for both VDC’s
Note: You cannot enable D@re after a namespace has been created
5. [ ] Create a namespace, customer should apply the naming convention, Keep it lowercase with only
an underscore with no spaces
Note: If the cluster is at CE+ create a namespace with compliance enabled, for GE and basis clusters
leave compliance disabled on the namespace.
Page 10 of 26
Note: Once the namespace is created you cannot enable compliance or D@RE, make sure you have
that correct
If retention classes are configured on Centera you have to configure the classes when you
create the namespace. The names have to match if not the app will not be able to delete its
object. The value does not have to match. Once you save the namespace you cannot delete
the retention policy but you can go back in and add another class
Page 11 of 26
6. [ ] Save the namespace
7. [ ] Ask the customer if they require a management user for each application or just one to avoid
having to use root
8. [ ] Go to users, create a Management user for the application or for a universal user.
9. [ ] Logout and log back in as that new management user. Typically the customer will give EMC it’s
own management user.
10. [ ] Create an Object user which is equivalent to a profile on Centera for every application to be
migrated,
The name does not have to match the Centera profile name, refer to the customer for the
naming convention. You must use lowercase
Select the Namespace for that user
Select save
Note: When you first create a bucket metadata search is grayed out, per design, when the bucket is
saved it will automatically get enabled. This was designed to prevent it from staying disabled which will
disable query. After you save it go back into the bucket, you will see metadata search is enabled.
Page 12 of 26
1. [ ] Enter the bucket again, from the drop down select edit ACL (access control list). Verify the object
user is in full control. Root is not required for ACL.
Page 13 of 26
Generate the pea file by selecting generate > set password, this will create a tab for generate
pea file, generate the file
Copy the pea file to wordpad, you do not need the pea file from the other VDC at 3.x, the id’s
are now the same.
Set the bucket that was created for your user
3. [ ] Login to the Centera to test the ecs pea file, login is dev:we!dev!code?
4. [ ] From an access node enter the following to get to JCAS
export LD_LIBRARY_PATH=/home/filepool/bin:.; /usr/java/`cd /usr/java;ls |grep
j`/bin/java -jar /home/filepool/bin/JCASScript.jar
7. [ ] Enter c for capability, if read and write are disabled, the user or bucket was not configured
correctly. You should not be using root as the bucket owner
Page 14 of 26
8. [ ] Test a write and read, for CAS once you write a file to a bucket you can never delete the bucket
even if you delete the file, a reflection is always left behind
Eee
9. [ ] Copy the pea file to the sync servers, at this point there should be 2 pea files named for example
evault_Centera.pea and evault_ecs.pea
ECSSYNC Preparation
MariaDB is a database used to log all clips migrated, validated and errored. These tables will assist with
troubleshooting and reporting
Page 15 of 26
Note: Create a table for every clip list or application your migrating
Note: Never drop a table after a migration, the table is required for tracking purposes
1. [ ] Vi a file called the create_script.sql, copy in the below lines,at the top line enter the name of the
table to be created and save.
CREATE TABLE IF NOT EXISTS evault (
source_id VARCHAR(54) PRIMARY KEY NOT NULL,
target_id VARCHAR(54),
is_directory INT NOT NULL,
size BIGINT,
mtime DATETIME,
status VARCHAR(32) NOT NULL,
transfer_start DATETIME null,
transfer_complete DATETIME null,
verify_start DATETIME null,
verify_complete DATETIME null,
retry_count INT,
error_message VARCHAR(2048),
is_source_deleted INT NULL,
INDEX status_idx (status)
);
2. [ ] To create the table enter:
mysql ecs_sync -p < create_table.sql
at the prompt enter ecs-sync-db
3. [ ] Login into mysql enter
mysql ecs_sync –p
4. [ ] Verify the table was created enter
show tables;
5. [ ] To view the table enter
describe <name of the table>;
+--------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NO | PRI | NULL | |
| target_id | varchar(54) | YES | | NULL | |
| started_at | timestamp | YES | | NULL | |
| completed_at | timestamp | YES | | NULL | |
| verified_at | timestamp | YES | | NULL | |
| status | varchar(32) | NO | | NULL | |
| message | varchar(2048) | YES | | NULL | |
Note: Be sure that every application’s clip list has its own table
Page 16 of 26
#!/usr/bin/perl
while(<>){
/([A-Z0-9]{13}e[A-Z0-9]{13,39})/g;
print "$1\n";
}
7. [ ] Make the script executable Enter:
chmod +x clean.pl
8. [ ] Clean.pl will remove everything that is not a clip except blank lines, Enter
./clean.pl clip list > cliplist.clean
1. [ ] To remove blank lines enter
grep ‘e’ cliplist.clean > cliplist.cleaner
2. [ ] Verify if you have any hidden windows characters which are special
characters at the end of the clips such as ^M Enter:
cat –v cliplist.cleaner | more
E7DO27H1TD1T1eF583RBTK8U44DG41A60F2BTJ0MBP96C339KVSPJ^M
1. [ ] If there are hidden characters enter.
dos2unix cliplist.cleaner cliplist.final
3. [ ] If you have for an example 4 vm’s do a wc-l on the list and split the
list by 4 and copy the lists to the other vm’s.
Split –lines 1000000 dx01.clips dx01, this will generate dx01aa and
up.
Note: If there’s multiple apps in the default ask [email protected] for assistance to breakdown the
apps in the pool
Page 17 of 26
fpshell -t access –c ‘df –lh’ | more
Note: The query can process up to 15M clips a hour, the list comes in a
ready state so no need to clean it
1. [ ] If you have to perform a delta after the first pass enter JCAS, for an
example the customer gave you the list on sept 2, set the lower boundary
to the day before and do another qtf
CASScript>qslb
usage: querySetLowerBound "yyyy.mm.dd hh:mm:ss"
qtf 2nddelta
1. [ ] Use cldiff to get the delta from the original list against the delta.
Both lists will need to sorted, once sorted enter ./cldiff delta orginal,
this will generate a source_only and target_only , rename source_only that
will be your new delta list
X-doctor setup
2. [ ] To configure xdoctor Enter:
This should be done on the ecssync server
sudo su
xdoctor -c
(0) Exit
xDoctor Notification
Page 18 of 26
--------------------
(1) Overview
(2) SMTP Settings
(3) Reporting Settings
[SMTP Settings]
SMTP Server = mailhub.lss.emc.com:25
TLS = False
TLS Username =
TLS Password =
xDoctor Notification
--------------------
(1) Overview
(2) SMTP Settings
(3) Reporting Settings
Go back to main page 0 and Select the migration info 9 and put in the details
important part is the Target product S/N but all details should be filled…
Migration Info
----------------
Customer Name [DevSetup4]:
Source Product Name [Centera]:
Source Product Version [4.3]:
Source SerialNumber [APM00000000426]:
Target Product Name [ECS]:
Target Product Version [3.0]:
Target SerialNumber [ECS00000000001]:
Page 19 of 26
1. [ ] Select ECS, browse to Other > double click you customer > Double click the system > select
migration from the left most option
<!-- uncomment the following if you are *not* submitting to the ecs-sync
service running on the OVA -->
<!--
Page 20 of 26
<dbConnectString>jdbc:mysql://localhost:3306/ecs_sync?user=ecssync&password=ecs
-sync-db&autoReconnect=true&characterEncoding=UTF-8</dbConnectString>
-->
<dbTable>evault</dbTable>
<!-- comment above and uncomment below if you are *not* connecting to a
mysql DB -->
<!--
<dbFile>cas_migration.db</dbFile>
-->
<casConfig>
<!-- modify hosts and pea file or optionally use user/secret params ala
CAS SDK spec -->
<connectionString>hpp://10.246.22.131?/home/ecssync/pea/evault_Centera.pea</connect
ionString>
</casConfig>
</source>
<target>
<casConfig>
<!-- modify hosts and pea file or optionally use user/secret params ala
CAS SDK spec -->
<connectionString>hpp://10.241.172.43?/home/ecssync/pea/evault.pea</connectionStrin
g>
</casConfig>
</target>
</syncConfig>
1. [ ] Enter xmllint cas_migration.xml to verify if there were any syntax errors. If it comes back
showing you the content of the entire xml it’s good if not if will tell you what lines have a syntax error
Note: If your migrating another application on the same server you should have a separate xml file and
table, repeat the command above to kick off another job
Page 21 of 26
2. [ ] If the job instantly says complete, you have an issue, look at the ecssync.log in /var/log/ecs-
sync/ecs-sync.log for the reason it failed
Some common problems are:
ecs-sync service is not running enter: sudo service ecs-sync –status
Source or target authentication failed, check the pea files
Xml can’t find the path to the pea file or cliplist
Mariadb is not running enter: service mariadb status
Syntax error in the xml file
LD libraries are not exported, enter:
export LD_LIBRARY_PATH=/usr/local/Centera_SDK/lib/64, then a set | grep LD
3. [ ] The /var/log/ecs_sync/ecssync/ecssyn.log will only log errors. To monitor the migration, use the
DB or the ctl status
4. [ ] To pause and resume the migration Enter:
ecs-sync-ctl –list-jobs to get the job number running
ecs-sync-ctl --pause <job id>
ecs-sync-ctl --resume <job id>
1. [ ] To change the thread count you do not have to edit the xml file, stop or pause the migration
Enter:
ecs-sync-ctl --threads <thread-count> --set-threads <job-id>
1. [ ] By default the sync server reserves 200GB and only show 80GB, if you’re
doing a large migration, keep an eye on the capacity by entering df-lh, if
more capacity is required enter: (this is instant no service restart is
required)
sudo xfs_growfs /dev/mapper/centos-root
Page 22 of 26
Working with MariaDB
Once the migration is in progress you can run sql commands to get a status
2. [ ] To get into the MariaDB Enter
mysql ecs_sync -p password is ecs-sync-db)
3. [ ] SQL commands
+-------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------+------+-----+---------+-------+
| source_id | varchar(54) | NO | PRI | NULL | |
| target_id | varchar(54) | YES | | NULL | |
| is_directory | int(11) | NO | | NULL | |
| size | bigint(20) | YES | | NULL | |
| mtime | datetime | YES | | NULL | |
| status | varchar(32) | NO | | NULL | |
| transfer_start | datetime | YES | | NULL | |
| transfer_complete | datetime | YES | | NULL | |
| verify_start | datetime | YES | | NULL | |
| verify_complete | datetime | YES | | NULL | |
| retry_count | int(11) | YES | | NULL | |
| error_message | varchar(2048) | YES | | NULL | |
+-------------------+---------------+------+-----+---------+-------+
+--------------------+
| Tables_in_ecs_sync |
+--------------------+
| EDI |
| EDI_error |
| <table> |
| objects |
+--------------------+
+-------------+----------+
| status | count(*) |
+-------------+----------+
| Error | 1977 |
| In Transfer | 29 |
| Retry Queue | 51 |
| Verified | 218955 |
+-------------+----------+
+-------------+
| sum(size) |
+-------------+
Page 23 of 26
| 17836530274 |
+-------------+
select source_id from <table> where status = 'Error' and error_message like
'%10021%' into outfile 'sync3_10021.clips';
+-------------------------------------------------------+
| source_id |
+-------------------------------------------------------+
| 3O1C8Q2N73CJHe5HLSRPJSSIH91G415OO1FOOR0G54O34IHC2RMOV |
| 3O1ESBPOP7TMBeC3U5LA4LPROOOG410T45FL2G0406DH3HVQV1P4J |
| 3O1HKJDBC8V7Ge2MKCQ8E8I4OKPG415NF4674K0S7QQO4QLBL6C0K |
| 3O1M23TCTVCN6e3O3F348F2UHIMG414DC6EM8T03FE8JHGBN2JGIE |
| 3O1MVRPUU02CDe5OE4CN8DMUCMEG412JHJMFI20V53N478OVSPOG2 |
| 3O1N5I2KJTB0PeBHPB48B13AM9VG415LJS7DJU0KDQCAGDSG165C1 |
| 3O1OF4TVCH8MSeAO5PGKUELFIFMG410RT2B7V70J3A0NTCDS5V4LS |
| 3O1R908MQHBBIeEVHF5AC18FSCLG4137DGVHIA01BIAR957G3EIRK |
| 3O1STDDM67ES0e9GMOV7G1JAEJ9G410U812GGB0MB19D7CCHUKU4J |
| 3O1VL6VE9O1DGeE4NI99DHLBH27G4150MCLFM60BC42QFDS420RN2 |
+-------------------------------------------------------+
10 rows in set (0.00 sec)
+---------------------+----------------------+
Page 24 of 26
| min(transfer_start) | max(verify_complete) |
+---------------------+----------------------+
| 2017-01-29 10:48:09 | 2017-01-29 14:40:12 |
Troubleshooting
This section will describe the troubleshooting steps
One of most common errors when doing a migration from Centera is 10021, this
is typically clips that were deleted on Centera before it was migrated, 10014
network issue and 10005 store error.
4. [ ] After the migration dump the DB of all errors, take that list and try
migrating it again. After the 2nd pass take all of the errors that failed
again and point the tool to the DR Centera. After this take what still
failed to migrate into an errors.final list.
5. [ ] Go to the JCAS directory and enter screen
6. [ ] Launch JCAS and open a pool to the pool you were migrating from
7. [ ] Enter qsd to query for all deletes
CASScript>qsd
Query Expression Properties:
Start Time: UNBOUNDED
End Time : UNBOUNDED
Type : DELETED
Page 25 of 26
Clip differences (10):
0 source only
10 target only
3. [ ] With the 6 clips you can open a pool to the Centera and try reading the
BLOB, if it generated a file it’s readable, if not it’s corrupted, at this
point open a SR
1. [ ] If every clip is accountable for you can line up a window to cutover the applications which is an
outage where you give them the ECS pea files and ip’s and they have to stop the services on the app
and point the the app to ECS.
2. [ ] Have the customer test recalls if all looks good submit a final report for that application.
Page 26 of 26