Skip to main content
ONTAP FLI

ONTAP Foreign LUN Import (FLI) test migration and cutover planning

Contributors netapp-barbe

Run one or more test migrations to confirm that arrays, the network and fabric, ONTAP configuration, and host remediation steps are correct, and to collect throughput samples that can be extrapolated for production scheduling.

A good test migration validates:

  • Backend readiness: IC LIF reachability, iSCSI sessions stability, and foreign LUN discovery is consistent across paths.

  • Workflow correctness: Import relationship creation/start/show/complete (and optional verify) behaves as expected under the selected mode (online/offline).

  • Host readiness: Host rescan/remediation steps work reliably for the target use case (e.g., ESXi VMFS/RDM, Windows standalone/WFC).

  • Operational estimates: Throughput observed in test runs provides the most realistic basis for estimating production migration duration and is generally better than any generic benchmark.

Test migration example using Hitachi AMS2100

The following is an example test migration using a Hitachi AMS2100 as the foreign array. Depending on the arrays involved, host operating systems, and other variables, your steps may be different.

You can use the following example as a general guide to the steps required to perform test migrations. NetApp recommends performing test migrations as early as possible in order to find and have as much time as possible to resolve any issues brought to light by the tests. A test migration should be performed on all combinations of source and destination arrays before proceeding with the production migrations.

Steps
  1. Create a 2 GB test LUN on the source array.

    1. Log in to Hitachi Storage Navigator Modular as system.

    2. Select AMS 2100 array.

    3. Click Show and Configure Array.

    4. Log in using root.

    5. Expand Groups and select Logical Units.

    6. Select Create LU to create the test LUN.

    7. Create a test LUN of 2 GB.

    8. Click OK.

    9. Skip the LUN assignment here and proceed by clicking Close.

    10. Verify the test LUN was created.

  2. Assign the test LUN to the host group created for ONTAP initiators.

    1. Expand Groups and select Logical Units.

    2. Select Host Groups to map the test LUN to the cDOT_FLI host group.

    3. Select host group cDOT_FLI created in the previous step and click Edit Host Group.

    4. Choose the ports for the host group. In this example we choose 0a, 0e, 1a, 1e. Select the Forced Set to All Selected Ports option.

    5. In the HDS Storage Navigator, edit the host group.

    6. Click Logical Units and add the test LUN.

    7. Click OK to map the LUN.

    8. Select Yes, I Have Read the Above Warning and Want to Edit Host Group and click Confirm.

    9. Verify host group creation and click Close.

  3. Verify the test LUN and mapping from the source storage to destination storage and perform Foreign LUN Import (FLI) import.

    1. Log in to the ONTAP storage through SSH using the admin user.

    2. Change the mode to Advanced.

      DataMig-cmode::> set -privilege advanced

    3. Enter 'y' when asked if you want to continue with advanced commands.

    4. Discover the source array on ONTAP. Wait for a few minutes and retry to detect the source array.

      storage array show

      When the storage array is discovered for the first time, ONTAP might not show the array by discovering automatically. Use the following instructions to reset the switch port where ONTAP initiator ports are connected.

      For example, the DataMig-cmode cluster initiator ports 0a and 0b of ONTAP are connected to Cisco ports 4/9 and 4/11. To reset port 4/9 on the Cisco switch:

      conf t
      interface fc4/
      shutdown
      no shutdown
      exit
      exit

      Resetting one port is usually enough. Check the array list and LUN paths after resetting one port.

    5. Verify the source array is discovered through all the initiator ports:

      storage array config show -array-name HITACHI_DF600F_1

                   LUN   LUN
      Node         Group Count     Array Name       Array Target Port Initiator
      ------------ ----- ----- ---------------------------- -----------------------
      DataMig-cmode-01 0     1    HITACHI_DF600F_1     50060e801046b960        0a
                                                       50060e801046b964        0b
                                                       50060e801046b968        0a
                                                       50060e801046b96c        0b
      DataMig-cmode-02 0     1    HITACHI_DF600F_1     50060e801046b960        0a
                                                       50060e801046b964        0b
                                                       50060e801046b968        0a
                                                       50060e801046b96c        0b
    6. List the test LUN mapped from Hitachi storage and verify the disk properties and paths:

      storage disk show -array-name HITACHI_DF600F_1 -instance

                        Disk: HIT-1.1
              Container Type: unassigned
                  Owner/Home: -  / -
                     DR Home: -
          Stack ID/Shelf/Bay: -  / -  / -
                         LUN: 0
                       Array: HITACHI_DF600F_1
                      Vendor: HITACHI
                       Model: DF600F
               Serial Number: 83017542001A
                         UID: 48495441:43484920:38333031:37353432:30303236:00000000:00000000:00000000:00000000:00000000
                         BPS: 512
               Physical Size: -
                    Position: present
      Checksum Compatibility: block
                   Aggregate: -
                        Plex: -
      Paths:
                                      LUN  Initiator Side        Target Side                                            Link
      Controller         Initiator     ID  Switch Port           Switch Port           Acc Use  Target Port     TPGN    Speed  I/O KB/s  IOPS
      ------------------ ---------  -----  --------------------  --------------------  --- ---  --------------  ------  ----   --- -----
      DataMig-cmode-01   0a             0  DM-Cisco9506-1:4-9    DM-Cisco9506-1:2-24   AO  INU  50060e801046b968  2   2 Gb/S    0  0
      DataMig-cmode-01   0b             0  DM-Cisco9506-2:4-9    DM-Cisco9506-2:2-24   AO  INU  50060e801046b96c  2   2 Gb/S    0  0
      DataMig-cmode-01   0b             0  DM-Cisco9506-2:4-9    DM-Cisco9506-2:1-14   AO  INU  50060e801046b964  1   2 Gb/S    0  0
      DataMig-cmode-01   0a             0  DM-Cisco9506-1:4-9    DM-Cisco9506-1:1-14   AO  INU  50060e801046b960  1   2 Gb/S    0  0
      DataMig-cmode-02   0a             0  DM-Cisco9506-1:4-11   DM-Cisco9506-1:2-24   AO  INU  50060e801046b968  2   2 Gb/S    0  0
      DataMig-cmode-02   0b             0  DM-Cisco9506-2:4-11   DM-Cisco9506-2:2-24   AO  INU  50060e801046b96c  2   2 Gb/S    0  0
      DataMig-cmode-02   0b             0  DM-Cisco9506-2:4-11   DM-Cisco9506-2:1-14   AO  INU  50060e801046b964  1   2 Gb/S    0  0
      DataMig-cmode-02   0a             0  DM-Cisco9506-1:4-11   DM-Cisco9506-1:1-14   AO  INU  50060e801046b960  1   2 Gb/S    0  0
      
      Errors:
      -
      
      DataMig-cmode::*>
  4. Mark the source LUN as foreign using the serial number:

    storage disk set-foreign-lun { -serial-number 83017542001A } -is-foreign true

    1. Verify the source LUN is marked as foreign:

      storage disk show -array-name HITACHI_DF600F_1

    2. List all foreign arrays and their serial numbers:

      storage disk show -container-type foreign -fields serial-number

      Note The LUN create command detects the size and alignment based on partition offset and creates the LUN accordingly with the foreign-disk argument.
  5. Create a destination volume:

    vol create -vserver datamig flivol aggr1 -size 10g

  6. Create a test LUN using a foreign LUN:

    lun create -vserver datamig -path /vol/flivol/testlun1 -ostype linux -foreign-disk 83017542001A

    1. List the test LUN and verify the size of the LUN with the source LUN:

      lun show

      Note For FLI offline migration, the LUN must be online to map it to an igroup and then must be offline before creating the LUN import relationship.
  7. Create test igroup of protocol FCP without adding any initiators:

    lun igroup create -vserver datamig -igroup testig1 -protocol fcp -ostype linux

  8. Map the test LUN to the test igroup:

    lun map -vserver datamig -path /vol/flivol/testlun1 -igroup testig1

  9. Offline the test LUN:

    lun offline -vserver datamig -path /vol/flivol/testlun1

  10. Create import relationship with test LUN and foreign LUN:

    lun import create -vserver datamig -path /vol/flivol/testlun1 -foreign-disk 83017542001A

  11. Start the migration (import):

    lun import start -vserver datamig -path /vol/flivol/testlun1

    1. Monitor the import progress:

      lun import show -vserver datamig -path /vol/flivol/testlun1

    2. Check the import job is completed successfully:

      lun import show -vserver datamig -path /vol/flivol/testlun1

      vserver foreign-disk   path                operation admin operational percent
                                               in progress state state       complete
      -------------------------------------------------------------------------------
      datamig 83017542001A   /vol/flivol/testlun1
                                                 import    started
                                                                 completed     100
  12. Start the verify job to compare source and destination LUNs. Monitor the verify progress:

    lun import verify start -vserver datamig -path /vol/flivol/testlun1

    DataMig-cmode::*> lun import show -vserver datamig -path /vol/flivol/testlun1
    vserver foreign-disk   path                operation admin operational percent
                                             in progress state state       complete
    -------------------------------------------------------------------------------
    datamig 83017542001A   /vol/flivol/testlun1
                                               verify    started
                                                               in_progress     44
    1. Check the verify job is complete without any errors:

      lun import show -vserver datamig -path /vol/flivol/testlun1

      vserver foreign-disk   path                operation admin operational percent
                                               in progress state state       complete
      -------------------------------------------------------------------------------
      datamig 83017542001A   /vol/flivol/testlun1
                                                 verify    started
                                                                 completed      100
  13. Delete the import relationship to remove the migration job:

    lun import delete -vserver datamig -path /vol/flivol/testlun1

    lun import show -vserver datamig -path /vol/flivol/testlun1

  14. Unmap the test LUN from the test igroup:

    lun unmap -vserver datamig -path /vol/flivol/testlun1 -igroup testig1

  15. Online the test LUN:

    lun online -vserver datamig -path /vol/flivol/testlun1

  16. Mark the foreign LUN attribute to false:

    storage disk modify -serial-number 83017542001A -is-foreign false

    Note Do not remove the host group created on source storage with ONTAP initiator ports. The same host group is reused during migrations from that source array.
  17. Remove test LUN from source storage.

    1. Log in to Hitachi Storage Navigator Modular as a system.

    2. Select AMS 2100 array and click Show and Configure Array.

    3. Log in using root.

    4. Select Groups, then select Host Groups.

    5. Select cDOT_FLI Igroup and click Edit Host Group.

    6. In the Edit Host Group window, select all target ports chosen to map the test LUN and select Forced Set to All Selected Ports.

    7. Select the Logical Units tab.

    8. Select the test LUN from the Assigned Logical Units window.

    9. Select Remove to remove the LUN mapping.

    10. Click OK.

  18. Do not remove the host group and continue deleting the test LUN.

    1. Select Logical Units.

    2. Select the test LUN created in the previous step.

    3. Click Delete LUN.

    4. Click Confirm to delete the test LUN.

  19. Delete the test LUN on the destination storage.

    1. Log in to the ONTAP storage through SSH using admin user.

    2. Offline the test LUN on the NetApp storage system:

      lun offline -vserver datamig -path /vol/flivol/testlun1

      Note Make sure you do not select another host LUN.
    3. Destroy the test LUN on the NetApp storage system:

      lun destroy -vserver datamig -path /vol/flivol/testlun1

    4. Offline the test volume on the NetApp storage system:

      vol offline -vserver datamig -volume flivol

    5. Destroy the test volume on the NetApp storage system:

      vol destroy -vserver datamig -volume flivol