12.5 Migrating NSS32 to NSS64 volume using oes-nss32to64 service

Using DST, you can seamlessly move the NSS data from NSS32 to NSS64 volumes without noticeable change or disruption. The data migration is performed by migrating all the data and corresponding metadata from the source NSS32 volume to the target NSS64 volume in the same tree and server. The source and the target volume both must be either local or cluster volumes. There is no support for cross-migration.

NOTE:

  • Data migration process will not replicate the Primary Namespace of the NSS32 volume and Linux File Extended Attributes (setfattr) to the NSS64 volume.

  • If the target path already has a file with the same name as the source path, the system will not migrate that file.

  • For better performance, OpenText recommends one migration at a time.

  • Service operations for oes-nss32to64 are not supported on CIS volumes.

12.5.1 Prerequisites

  • A new storage that is either equal or greater than the existing NSS32 volume.

  • A new NSS64 volume in a new or existing NSS64 pool.

  • The migration process requires minor downtime at the beginning for renaming the volumes and creating the shadow pair, followed by the removal of the DST pair at the end of the migration.

  • By default, the migration service (oes-nss32to64) is inactive and disabled. You must start oes-nss32to64 service (systemctl start oes-nss32to64.service) before you start the migration.

  • Both primary and secondary volumes must be active and mounted in NSS and on the same server. These volumes must not be part of any DST pair.

12.5.2 Data Migration for Local Volumes

  1. If the source NSS32VOL is already part of a DST pair, then you must break that DST pair.

  2. Choose one of the following options to migrate the data from NSS32 volume (NSS32VOL) to NSS64 pool (NSS64POOL) using oes-nss32to64 service:

    • Create a new NSS64 volume (NSS64VOL) in NSS64POOL and migrate NSS32VOL to NSS64VOL.

      nss32to64 migrate NSS32VOL target-volume NSS64VOL
      Volume names have been changed for this operation as:
      NSS32VOL (source volume) has been changed to NSS32VOL_32
      NSS64VOL (target volume) has been changed to NSS32VOL
    • Migrate NSS32VOL to NSS64POOL.

      nss32to64 migrate NSS32VOL target-pool NSS64POOL

      Migration of NSS32VOL to NSS64POOL creates a new volume in NSS64POOL named NSS32VOL_64.

      Volume names have been changed for this operation as:
      NSS32VOL (source volume) has been changed to NSS32VOL_32
      NSS32VOL_64 (target volume) has been changed to NSS32VOL

    The oes-nss32to64 service performs the following migration steps:

    1. Replicate the directory structure and the volume properties from NSS32VOL to NSS64VOL.

    2. Get ndsHomeDirectory and Directory Map objects for NSS32VOL.

    3. Swap DFS GUID from NSS32VOL to NSS64VOL.

    4. Rename the NSS32 volume from NSS32VOL to NSS32VOL_32.

    5. Rename the NSS64 volume from NSS64VOL to NSS32VOL.

    6. Set ndsHomeDirectory and Directory map objects to NSS64VOL from NSS32VOL.

    7. Create shadow volume and start migration.

      1. Create a DST pair with NSS32VOL_32 as secondary volume and NSS32VOL as primary volume.

      2. Move files from secondary volume NSS32VOL_32 to primary volume NSS32VOL.

    8. After a successful migration, the oes-nss32to64 service removes the DST pair that was created in 2g1.

      Removing the DST pair mounts both volumes and makes them available for their independent use.

  3. During the migration, you can check the following:

    1. Verify the status of migration for a specific volume.

      nss32to64 migration-status NSS32VOL
    2. Check the status of all migrations.

      nss32to64 list-migrations

      The list shows the percentage completion status, both completed and in progress.

  4. If service issues or other problems cause the migration to fail, the migration is halted and you must resume the migration.

    nss32to64 resume-migration NSS32VOL

For more information about nss32to64 command line utility, see Section B.6, nss32to64.

12.5.3 Data Migration for Cluster Volumes

NOTE:Before initiating data migration for cluster volumes, ensure the primary and secondary resources are running.

  1. If the source NSS32VOL is already part of a DST pair, then you must break that DST pair.

  2. Choose one of the following options to migrate the data from NSS32 volume (NSS32VOL) to NSS64 pool (NSS64POOL) using oes-nss32to64 service:

    • Create a new NSS64 volume (NSS64VOL) in NSS64POOL and migrate NSS32VOL to NSS64VOL.

      nss32to64 migrate NSS32VOL target-volume NSS64VOL
    • Migrate NSS32VOL to NSS64POOL.

      nss32to64 migrate NSS32VOL target-pool NSS64POOL

      Migration of NSS32VOL to NSS64POOL creates a new volume in NSS64POOL named NSS32VOL_64.

  3. For the migration, the oes-nss32to64 service performs the following steps:

    1. Replicate the directory structure and the volume properties from NSS32VOL to NSS64VOL.

    2. Get ndsHomeDirectory and Directory Map objects for NSS32VOL.

    3. Swap DFS GUID from NSS32VOL to NSS64VOL.

    4. Rename the NSS32 volume from NSS32VOL to NSS32VOL_32.

    5. Rename the NSS64 volume from NSS64VOL to NSS32VOL.

    6. Set ndsHomeDirectory and Directory map objects to NSS64VOL from NSS32VOL.

    7. Display the change in volume names.

      Migrate NSS32VOL to NSS64VOL

      Volume names have been changed for this operation as:
      NSS32VOL (source volume) has been changed to NSS32VOL_32
      NSS64VOL (target volume) has been changed to NSS32VOL 

      Migrate NSS32VOL to NSS64POOL

      Volume names have been changed for this operation as:
      NSS32VOL (source volume) has been changed to NSS32VOL_32
      NSS32VOL_64 (target volume) has been changed to NSS32VOL
    8. Display the existing and modified resource scripts.

      1. Create a directory (._NSSDataMigration) with two sub-directories for existing scripts (savedResourceScripts) and modified scripts (modifiedResourceScripts) in this location: /var/opt/novell/nss/.

      2. Update the resource scripts to create a cluster shadow volume.

      Sample Resource Scripts

      We have modified the cluster resource scripts of NSS64POOL_SERVER by borrowing from the resource
      scripts of NSS32POOL_SERVER.
       
      Before Modification Load Script for resource NSS64POOL_SERVER:
      #!/bin/bash
      . /opt/novell/ncs/lib/ncsfuncs
      exit_on_error nss /poolact=NSS64POOL
      exit_on_error ncpcon mount NSS32VOL=253
      exit_on_error add_secondary_ipaddress 10.10.10.42
      exit_on_error ncpcon bind --ncpservername=cluster-NSS64POOL-SERVER --ipaddress=10.10.10.42
      exit 0
       
       
      
      After Modification Load Script for resource NSS64POOL_SERVER:
      #!/bin/bash
      . /opt/novell/ncs/lib/ncsfuncs
      exit_on_error nss /poolact=NSS32POOL
      exit_on_error nss /poolact=NSS64POOL
      exit_on_error ncpcon mount NSS32VOL=253,shadowvolume=NSS32VOL_32
      exit_on_error add_secondary_ipaddress 10.10.10.41
      exit_on_error ncpcon bind --ncpservername=cluster-NSS32POOL-SERVER --ipaddress=10.10.10.41
      exit_on_error add_secondary_ipaddress 10.10.10.42
      exit_on_error ncpcon bind --ncpservername=cluster-NSS64POOL-SERVER --ipaddress=10.10.10.42
      exit 0
      
       
      Before Modification Unload Script for resource NSS64POOL_SERVER:
      #!/bin/bash
      . /opt/novell/ncs/lib/ncsfuncs
      ignore_error ncpcon unbind --ncpservername=NSS32TO64-CLP64-SERVER --ipaddress=10.10.10.42
      ignore_error del_secondary_ipaddress 10.10.10.42
      ignore_error nss /pooldeact=NSS64POOL
      exit 0
      
       
      After Modification Unload Script for resource NSS64POOL_SERVER:
      #!/bin/bash
      . /opt/novell/ncs/lib/ncsfuncs
      ignore_error ncpcon unbind --ncpservername=cluster-NSS64POOL-SERVER --ipaddress=10.10.10.42
      ignore_error del_secondary_ipaddress 10.10.10.42
      ignore_error ncpcon unbind --ncpservername=cluster-NSS32POOL-SERVER --ipaddress=10.10.10.41
      ignore_error del_secondary_ipaddress 10.10.10.41
      ignore_error nss /pooldeact=NSS64POOL
      ignore_error nss /pooldeact=NSS32POOL
      exit 0
       
      
      Before Modification Monitor Script for resource NSS64POOL_SERVER:
      #!/bin/bash
      . /opt/novell/ncs/lib/ncsfuncs
      exit_on_error status_fs /dev/pool/NSS64POOL /opt/novell/nss/mnt/.pools/NSS64POOL nsspool
      exit_on_error status_secondary_ipaddress 10.10.10.42
      exit_on_error ncpcon volume NSS32VOL
      exit 0
       
       
      After Modification Monitor Script for resource NSS64POOL_SERVER:
      #!/bin/bash
      . /opt/novell/ncs/lib/ncsfuncs
      exit_on_error status_fs /dev/pool/NSS64POOL /opt/novell/nss/mnt/.pools/NSS64POOL nsspool
      exit_on_error status_fs /dev/pool/NSS32POOL /opt/novell/nss/mnt/.pools/NSS32POOL nsspool
      exit_on_error status_secondary_ipaddress 10.10.10.41
      exit_on_error status_secondary_ipaddress 10.10.10.42
      exit_on_error ncpcon volume NSS32VOL
      exit 0
       
      Modify the scripts at /var/opt/novell/nss/._NSSDataMigration/modifiedResourceScripts to include
      any other commands from the corresponding scripts of NSS32POOL_SERVER.
       
      Enter "continue" to proceed after reviewing/modifying the script(s)
      or enter "discard" to discard the changes and abort the operation:
    9. (Optional) Edit the modified scripts located at: /var/opt/novell/nss/modifiedResourceScripts.

    10. Type continue to accept the changes and start the migration.

  4. (Optional) Verify the migration status.

    1. Check the shadow status for a given volume.

      nss32to64 shadow-status NSS32VOL

      or

      nss32to64 shadow-status NSS32VOL_32
      

      Sample Shadow Volume Status

      nss32to64 shadow-status NSS32VOL
      The volume "NSS32VOL" is a primary volume of a DST pair with "NSS32VOL_32" as secondary volume
      
      nss32to64 shadow-status NSS32VOL_32
      The volume "NSS32VOL_32" is a secondary volume of a DST pair with "NSS32VOL" as primary volume
    2. Check the status of migration for a specific volume.

      nss32to64 migration-status NSS32VOL

      Sample Migration Status

      Total Files Migrated: 1000/1000
      Total File Size Migrated (in kB): 1024000/1024000
    3. Check the status of all migrations.

      nss32to64 list-migrations

      Sample List Migrations

      NSS32VOL_32 --> NSS32VOL (% migrated: 100)

      The list shows the percentage completion status, both completed and in progress.

  5. If service issues or other problems cause the migration to fail, the migration is halted and you must resume the migration.

    nss32to64 resume-migration NSS32VOL
  6. Remove the DST pair.

    • During migration, if you try to remove the DST pair, a warning message appears.

      nss32to64 remove-shadow NSS32VOL
      
      A migration is already in progress for this volume. Do you want to continue anyway? (yes/no): no
      Aborting the operation...

      Type yes to remove the DST pair or no to continue the migration.

    • Ensure to remove the DST pair only after a successful migration.

      nss32to64 remove-shadow NSS32VOL

    Sample Resource Scripts

    We have modified the cluster resource scripts of NSS64POOL_SERVER.
    Before Modification Load Script for resource NSS64POOL_SERVER:
    
    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    exit_on_error nss /poolact=NSS32POOL
    exit_on_error nss /poolact=NSS64POOL
    exit_on_error ncpcon mount NSS32VOL=253,shadowvolume=NSS32VOL_32
    exit_on_error add_secondary_ipaddress 164.99.117.208
    exit_on_error ncpcon bind --ncpservername=NSS32TO64-CLP32-SERVER --ipaddress=164.99.117.208
    exit_on_error add_secondary_ipaddress 164.99.117.209
    exit_on_error ncpcon bind --ncpservername=NSS32TO64-CLP64-SERVER --ipaddress=164.99.117.209
    exit 0
     
     
    After Modification Load Script for resource NSS64POOL_SERVER:
    
    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    exit_on_error nss /poolact=NSS64POOL
    exit_on_error ncpcon mount NSS32VOL=253
    exit_on_error add_secondary_ipaddress 164.99.117.209
    exit_on_error ncpcon bind --ncpservername=NSS32TO64-CLP64-SERVER --ipaddress=164.99.117.209
    exit 0
     
    Before Modification Unload Script for resource NSS64POOL_SERVER:
    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    ignore_error ncpcon unbind --ncpservername=NSS32TO64-CLP64-SERVER --ipaddress=164.99.117.209
    ignore_error del_secondary_ipaddress 164.99.117.209
    ignore_error ncpcon unbind --ncpservername=NSS32TO64-CLP32-SERVER --ipaddress=164.99.117.208
    ignore_error del_secondary_ipaddress 164.99.117.208
    ignore_error nss /pooldeact=NSS64POOL
    ignore_error nss /pooldeact=NSS32POOL
    exit 0
     
    After Modification Unload Script for resource NSS64POOL_SERVER:
    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    ignore_error ncpcon unbind --ncpservername=NSS32TO64-CLP64-SERVER --ipaddress=164.99.117.209
    ignore_error del_secondary_ipaddress 164.99.117.209
    ignore_error nss /pooldeact=NSS64POOL
    exit 0 
    
    
    
    
    Before Modification Monitor Script for resource NSS64POOL_SERVER:
    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    exit_on_error status_fs /dev/pool/NSS64POOL /opt/novell/nss/mnt/.pools/NSS64POOL nsspool
    exit_on_error status_fs /dev/pool/NSS32POOL /opt/novell/nss/mnt/.pools/NSS32POOL nsspool
    exit_on_error status_secondary_ipaddress 164.99.117.208
    exit_on_error status_secondary_ipaddress 164.99.117.209
    exit_on_error ncpcon volume NSS32VOL
    exit 0
     
    After Modification Monitor Script for resource NSS64POOL_SERVER:
    #!/bin/bash
    . /opt/novell/ncs/lib/ncsfuncs
    exit_on_error status_fs /dev/pool/NSS64POOL /opt/novell/nss/mnt/.pools/NSS64POOL nsspool
    exit_on_error status_secondary_ipaddress 164.99.117.209
    exit_on_error ncpcon volume NSS32VOL
    exit 0
     
    Modify the scripts at /var/opt/novell/nss/._NSSDataMigration/modifiedResourceScripts to remove
    any other commands.
    Enter "continue" to proceed after reviewing/modifying the script(s)
    or enter "discard" to discard the changes and abort the operation:
     
  7. (Optional) Edit the modified scripts located here: /var/opt/novell/nss/modifiedResourceScripts.

  8. Type continue to accept the changes and remove the DST pair.

For more information about nss32to64 command line utility, see Section B.6, nss32to64.