ViPR Controller : Migration of Recoverpoint protected VPLEX volumes fail with "Error 12000: An error occurred while executing the job. Failed to change virtual pool for volumes"

           

   Article Number:     540111                                   Article Version: 3     Article Type:    Break Fix 
   

 


Product:

 

ViPR Controller,ViPR Controller Controller 3.6 SP2

 

Issue:

 

 

The user is unable to successfully run a "Change Volume Virtual Pool" order to migrate a RecoverPoint (RP) protected VPLEX volume to a new virtual Pool.   
    A previous ViPR Controller order to migrate a data volume from the same RP CG was successful.   
   
   
    ViPR Controller UI error :   

      Error 12000: An error occurred while executing the job. Failed to change virtual pool for volumes [urn:storageos:Volume:c4ce3405-7ac9-4312-88ac-1a4b8f6ecd9a:vdc1 ], Op: CHANGE VOLUME VPOOL with message Failed to add workflow steps for change virtual pool caused by Failed to add workflow steps for change virtual pool caused by java.lang.NullPointerException     
          

                                                             

 

 

Cause:

 

 

In addition to migrating the source data volume specified in the Order, VIPR-C (by design) attempts to migrate all source Journal volumes associated with the RP CG.   
   
    A previous ViPR Controller order to migrate a data volume (from the same RP CG)  resulted in all the RP journal volumes being successfully migrated to the target virtual pool already.   
   
    For the new migration order, the VIPR code validates the Journal Volume and creates a workflow step to validate that the backend volumes of the passed VPLEX volumes are the actual backend volumes used by the VPLEX volume on the VPLEX system. The NPE is caused due to VPLEX System URI being returned null.   
   
    VIPR Controller fails to determine that Journal volumes are already migrated and need to be skipped.   
     
                                                           

 

 

Change:

 

 

A volume from the same RP Consistency Group (CG) has previously been successfully migrated which in turn migrated all the CG Journal volumes to the target virtual Pool.                                                           

 

 

Resolution:

 

 

   

      Workaround:     
          

   

      1. Migrate the previously migrated Journal volumes back to the original source Virtual Pool / Array.     
     
      VIPR-C UI > Service Catalog > Migration Services > VPLEX Data Migration     
     
      2. Re-run the Change Volume Virtual Pool order to complete the the remaining volume migrations which will move the journals back to the target virtual Pool.     
     
Resolution:     
     
      ViPR-C Development are currently evaluating the requirements to address this issue in an upcoming ViPR-C product release.     
          

                                                             

 

 

Notes:

 

 

   

      ViPR Controller log   

   

      vipr3 vipr3 controllersvc 2019-10-23 03:12:40,339 [14548|changeVirtualPool|a4b78511-0ff6-46d1-9811-629b4ff66a5a]  INFO  VPlexDeviceController.java (line 12015) Adding migration steps for vplex volume urn:storageos:Volume:84b94838-6f08-456c-a833-5d0f68339cb4:vdc1       
        vipr3 vipr3 controllersvc 2019-10-23 03:12:40,341 [14548|changeVirtualPool|a4b78511-0ff6-46d1-9811-629b4ff66a5a]  INFO  VPlexDeviceController.java (line 6302) VPlex controller migrate volume urn:storageos:Volume:84b94838-6f08-456c-a833-5d0f68339cb4:vdc1 on VPlex null       
        vipr3 vipr3 controllersvc 2019-10-23 03:12:40,342 [14548|changeVirtualPool|a4b78511-0ff6-46d1-9811-629b4ff66a5a]  INFO  VPlexDeviceController.java (line 6313) Got VPlex system       
        vipr3 vipr3 controllersvc 2019-10-23 03:12:40,343 [14548|changeVirtualPool|a4b78511-0ff6-46d1-9811-629b4ff66a5a] ERROR  BlockOrchestrationDeviceController.java (line 406) Could not change Virtual Pool for volumes: [urn:storageos:Volume:c4ce3405-7ac9-4312-88ac-1a4b8f6ecd9a:vdc1......]       
        com.emc.storageos.vplex.api.VPlexApiException: Failed to add workflow steps for change virtual pool caused by Failed to add workflow steps for change virtual pool caused by java.lang.NullPointerException       
            at com.emc.storageos.vplexcontroller.VPlexDeviceController.addStepsForChangeVirtualPool(VPlexDeviceController.java:12145)       
            at com.emc.storageos.blockorchestrationcontroller.BlockOrchestrationDeviceController.changeVirtualPool(BlockOrchestrationDeviceController.java:388)       
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)