HowTo: Migrate dCache Pool

From Public PIC Wiki
Jump to navigation Jump to search

Migrate the pool leaving the source with cached copies of the files

In a dCache pool use "help migration" and "help migration copy" to know more about the migration module. The syntax might be different now, the following was tested with 1.9.5-23:

migration copy -sticky -concurrency=6 -pins=move -smode=removable -tmode=same -target=pgroup pgroup-atlas-ddn

Where pgroup-atlas-ddn should be a different pgroup (Pool Group) from the source pool's pgroup if not using a version higher than 1.9.10. Concurrency should be adapted to the source server capacity and the number/capacity of the destination pgroup.

Migrate the pool leaving the source empty

  • Ensure that source and destination dCache pools are UP and running dCache-server 1.9.1-7 or higher version.
  • Set source pool to rdonly. This is: go to PoolManager and run "psu set pool $poolName rdonly"
  • Optionally you can create a ZFS snapshot on source pool
root@dc023 # zfs list
NAME     USED  AVAIL  REFER  MOUNTPOINT
dcpool  9.60T  6.85T  9.60T  /dcpool
root@dc023 # zfs snapshot dcpool@0904161212
root@dc023 # zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
dcpool             9.60T  6.85T  9.60T  /dcpool
dcpool@0904161212      0      -  9.60T  -
root@dc023 # 
  • Login to pCells and go to source pool
    • Ensure that there's no migration process running; "migration ls" should return nothing
    • Start the migration process with "migration move [options] <target> ...". By default no options are needed. You should see something like:
[1] INITIALIZING migration move dc060_1 
 << --- Thu Apr 16 11:21:24 GMT+01:00 2009 --- >>
    • Verify that the migration process is running with "migration ls" and "migration info":
[1] RUNNING      migration move dc060_1 

 << --- Thu Apr 16 11:24:48 GMT+01:00 2009 --- >>

Command    : migration move dc060_1 
State      : RUNNING
Queued     : 136456
Attempts   : 124
Targets    : dc060_1
Completed  : 123 files; 8695281287 bytes; 0%
Total      : 10546631499269 bytes
Concurrency: 1
Running tasks:
[123] 00030000000000000B681108: TASK.GettingLocations

 << --- Thu Apr 16 11:24:50 GMT+01:00 2009 --- >>

Command    : migration move dc060_1 
State      : RUNNING
Queued     : 136453
Attempts   : 127
Targets    : dc060_1
Completed  : 126 files; 8843944729 bytes; 0%
Total      : 10546631499269 bytes
Concurrency: 1
Running tasks:
[126] 00030000000000000BE93148: TASK.Copying -> [>dc060_1@local]

 << --- Thu Apr 16 11:25:00 GMT+01:00 2009 --- >>


To monitor the migration process in the pools you can use "zpool iostat 10" in both the source and destination pools:

root@dc060 # zpool iostat 10
               capacity     operations    bandwidth
pool         used  avail   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
dcpool      14.4G  40.8T      0      4      6   178K
dcpool      15.0G  40.8T      0    431      0  50.0M
dcpool      15.6G  40.8T      0    395      0  45.3M
dcpool      15.9G  40.8T      0    296      0  31.7M
dcpool      16.5G  40.8T      0    442      0  51.3M
dcpool      17.0G  40.8T      0    338      0  38.4M

root@dc023 # zpool iostat 10
               capacity     operations    bandwidth
pool         used  avail   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
dcpool      11.8T  8.63T     43     34  5.12M  2.20M
dcpool      11.8T  8.63T    300     49  36.8M   224K
dcpool      11.8T  8.63T    314     47  38.5M   215K
dcpool      11.8T  8.63T    354     48  43.4M   220K