The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This chapter describes how to use DMM CLI commands to configure and monitor data migration jobs.
The DMM feature includes CLI commands to configure and perform data migration jobs. Job and session configuration commands are entered at the switch CLI prompt.
A DMM job can be active on more than one switch. For example, in a dual-fabric topology with multipath configurations, the DMM job runs on a switch in each fabric. To configure the job, you enter DMM CLI commands on both switches.
The DMM feature runs on an MSM-18/4 module, MDS 9222i switch or MDS 9250i switch. Each session runs on only one MSM-18/4 module, MDS 9222i switch or MDS 9250i switch. Enter the session configuration commands on the MDS switch that will perform the session migration.
The DMM show commands are accessed directly from the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch. From the command prompt in the switch, you must attach to the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch before entering these commands.
When using the DMM CLI commands, note the following guidelines:
When creating a server-based migration job, you must include all possible paths from the server HBA ports to the LUNs being migrated because all writes to a migrated LUN need to be mirrored to the new storage until the cutover occurs, so that no data writes are lost.
For additional information about selecting ports for server-based jobs, see the Ports in a Server-Based Job.
When you enter the command to create a data migration job, the CLI enters DMM job configuration submode. This submode provides commands to configure the server HBA ports, storage ports, and job attributes. The job is only created on the MSM-18/4 module, MDS 9222i switch or the MDS 9250i switch when you enter the commit command.
In a dual-fabric topology with redundant paths, the data migration job runs on an MSM-18/4 module, MDS 9222i switch or the MDS 9250i switch in each fabric. You need to configure the job on both MSM-18/4 modules or MDS 9222i switches.
In this chapter, the examples and command descriptions use the following terminology (Figure 1):
The dual fabric configuration includes Fabric 1 and Fabric 2.
Switch A (on Fabric 1) contains the MSM-18/4 module, MDS 9222i switch or the MDS 9250i switch for data migration jobs.
Switch B (on Fabric 2) contains the MSM-18/4 module, MDS 9222i switch or the MDS 9250i switch for data migration jobs.
H1 and H2 are the server HBA ports to each fabric.
ES1 and ES2 are the existing storage ports.
NS1 and NS2 are the new storage ports.
The steps to configure a data migration job are described in the following sections:
Note | This step is not required for a server-based data migration job. |
Prior to creating a storage-based data migration job, you must retrieve the virtual initiator (VI) port world wide name (PWWN) and create a new zone containing the PWWNs of the VI and the storage ports. To use the new zone, add the new zone to a zone set and activate the zone set.
To configure the VI in Fabric 1, follow these steps:
Prior to creating the data migration job, you must complete the following configuration tasks on the storage devices:
Configure the existing storage to give the VI PWWN access to LUNs that need to be migrated.
Configure the new storage to give the VI PWWN access to LUNs that need to be migrated.
Note | For a dual-fabric topology, you must repeat the same set of configuration steps on switch B. Retrieve the VI information and create a new zone on switch B and configure the storage to allow the VI to access the LUNs exposed in fabric B. For an example configuration, see Storage-Based Migration Example 1. |
To configure a data migration job, first create the job on Switch A. After creating the job, the CLI enters DMM job configuration mode, where you enter the commands for configuring the job.
To create the data migration job, follow these steps:
Use the commands in DMM job configuration mode to add the server and storage ports to the job.
Note | To prevent data corruption, the job must contain all the server HBA ports that can access the set of LUNs being migrated, and all storage ports that expose these LUNs:
For additional information, see Checking the Storage ASL Status. |
In a dual-fabric topology, configure the IP address of the peer MSM-18/4 module, MDS 9222i switch or MDS 9250i switch (the DMM peers communicate using the management IP network).
To configure the data migration job, use the following steps:
Step 1 | switchA(config-dmm-job)#
server
vsan
1-4093
pwwn
pWWN
Specifies the VSAN and PWWN of the server HBA port to include in the migration.
| ||
Step 2 | switchA(config-dmm-job)#
storage
vsan
1-4093
pwwn
pWWN
existing
Specifies the VSAN and PWWN of the existing storage port.
| ||
Step 3 | switchA(config-dmm-job)#
storage
vsan
1-4093
pwwn
pWWN
new
Specifies the VSAN and PWWN of the new storage port.
| ||
Step 4 | switchA(config-dmm-job)#
attributes
job_type {1 |
2}
job_mode {1 |
2}
job_rate {1 |
2 |
3 |
4}
job_method {1 |
2 |
3}
Specifies the job type, job mode, and job rate: For job_type, enter 1 for server-based migration or 2 for storage-based migration. For job_mode, enter 1 for online or 2 for offline migration. For job_rate, enter 1 for best effort, 2 for slow, 3 for medium, and 4 for fast data migration. For job_method, enter 1 for Method 1, 2 for Method 2. For additional information about data migration rate, see Configuring Migration Rate. | ||
Step 5 | switchA(config-dmm-job)#
peer
IP_address
Configures the IP address of the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch on switch B. For information about configuring the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch IP addresses, see Configuring IP Connectivity |
The next step is to commit the data migration job on switch A. To commit the job, use the commit command.
When you enter the commit command, the switch sends the job configuration to the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch.
The DMM feature sends configuration information to other switches in the fabric as required, so that all traffic between the server HBA port and the existing storage is redirected to the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch.
The MSM-18/4 module, MDS 9222i switch or MDS 9250i switch performs discovery of all existing and new storage LUNs visible to the server HBA ports/VIs in this job.
Note | The commit command may require a noticeable amount of time to complete, depending on the number of LUNs to be discovered. |
The next step is to configure the data migration job on the peer MSM-18/4 module, MDS 9222i switch or MDS 9250i switch.
Note | You must use the same job number that you created on switch A. |
To configure the data migration job on the peer MSM-18/4 module, MDS 9222i switch or MDS 9250i switch, follow these steps:
The next step is to configure sessions in the data migration job. For a server-based migration, configure all of the sessions on one MSM-18/4 module, MDS 9222i switch or MDS 9250i switch.
For a storage-based migration, you can manually balance the load on the MSM-18/4 modules or the MDS 9222i switches by configuring sessions on both the MSM-18/4 modules or the MDS 9222i switches.
Note | For a storage-based migration, use the PWWN of the VI as the server in the session configuration. |
To verify that the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch has discovered the LUNs correctly, enter the show dmm job job-id job id storage command from the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch CLI.
To configure sessions, follow these steps:
Step 1 | switchA(config)#
dmm
module
module-id
job
job-id
session
Enters session configuration mode for the specified job on the specified MSM-18/4 module, MDS 9222i switch or MDS 9250i switch. |
Step 2 | switchA(config-session)#
server
pWWN
src_tgt
pWWN
src_lun
num
dst_tgt
pWWN
dst_lun
num
Configures a session. The server HBA port, existing storage port, and new storage port must all belong to the same VSAN.
|
The topology (Figure 1), is dual fabric with multipath ports defined in the server and redundant paths to the storage devices.
On both switches, the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch is located in slot 8. The PWWNs for the ports are listed here:
Port |
PWWN |
---|---|
H1 |
21:00:00:e0:8b:0a:5d:e7 |
ES1 |
50:06:04:82:bf:cf:e0:43 |
NS1 |
50:06:0e:80:03:4e:95:13 |
|
|
H2 |
21:01:00:e0:8b:0a:5d:e7 |
ES2 |
50:06:04:82:bf:cf:e0:5d |
NS2 |
50:06:0e:80:03:4e:95:03 |
The following example shows how to configure the VI on switch A:
switchA# configure terminal switchA(config)# dmm module 8 job 2345 get-vi vsan 100 DMM Storage Job:0x929 assigned following VI - VI NodeWWN: 21:0c:00:0d:ec:02:2d:82 VI PortWWN: 21:0d:00:0d:ec:02:2d:82 sjc7-9509-6(config)#
The following example shows how to configure the zone and zone set on switch A:
switchA(config)# zone name DMM1 vsan 100 switchA(config-zone)# member pwwn 21:0d:00:0d:ec:02:2d:82 -- for vi switchA(config-zone)# member pwwn 50:06:04:82:bf:cf:e0:43 -- for es switchA(config-zone)# member pwwn 50:06:0e:80:03:4e:95:13 -- for ns switchA(config-zone)# exit switchA(config)# zoneset name DMM1 vsan 100 switchA(config-zoneset)# member DMM1 switchA(config-zoneset)# exit switchA(config)#
The following example shows how to configure the data migration job on switch A:
switchA(config)# dmm module 8 job 2345 create Started New DMM Job Configuration. Do not exit sub-mode until configuration is complete and committed switchA(config-dmm-job)# server vsan 100 pwwn 21:00:00:e0:8b:0a:5d:e7 switchA(config-dmm-job)# storage vsan 100 pwwn 50:06:04:82:bf:cf:e0:43 existing switchA(config-dmm-job)# storage vsan 100 pwwn 50:06:0e:80:03:4e:95:13 new switchA(config-dmm-job)# peer 10.10.2.4 switchA(config-dmm-job)# attributes job_type 2 job_mode 1 job-rate 1 job-method 1 switchA(config-dmm-job)# commit switchA(config-dmm-job)# end Ending DMM Job Configuration. If the Job was not committed, it will be required to reconfigure the job. switchB#
The following example shows how to configure the VI on switch B:
switchB# configure terminal switchB(config)# dmm module 8 job 2345 get-vi vsan 100 DMM Storage Job:0x929 assigned following VI - VI NodeWWN: 21:0c:01:0e:ec:02:2d:82 VI PortWWN: 21:0d:00:0d:0a:01:2b:82 switchB(config)#
The following example shows how to configure the zone and zone set on switch B:
switchB(config)# zone name DMM1 vsan 100 switchB(config-zone)# member pwwn 21:0d:00:0d:0a:01:2b:82 -- for vi switchB(config-zone)# member pwwn 50:06:04:82:bf:cf:e0:5d -- for es switchB(config-zone)# member pwwn 50:06:0e:80:03:4e:95:03 -- for ns switchB(config-zone)# exit switchB(config)# zoneset name DMM1 vsan 100 switchB(config-zoneset)# member DMM1 switchB(config-zoneset)# exit switchB(config)#
The following example shows how to configure the data migration job on switch B:
switchB# configure terminal switchB(config)# dmm module 8 job 2345 create Started New DMM Job Configuration. Do not exit sub-mode until configuration is complete and committed switchB(config-dmm-job)# server vsan 100 pwwn 21:01:00:e0:8b:0a:5d:e7 switchB(config-dmm-job)# storage vsan 100 pwwn 50:06:04:82:bf:cf:e0:5d existing switchB(config-dmm-job)# storage vsan 100 pwwn 50:06:0e:80:03:4e:95:03 new switchB(config-dmm-job)# peer 10.10.1.8 switchB(config-dmm-job)# attributes job_type 2 job_mode 1 job-rate 1 job-method 1 switchB(config-dmm-job)# commit switchB(config-dmm-job)# end Ending DMM Job Configuration. If the Job was not committed, it will be required to reconfigure the job. switchB#
The following example shows how to configure the data migration sessions on switch A:
switchA(config)# dmm module 4 job 2345 session switchA(config-session)# server 21:0d:00:0d:ec:02:2d:82 src_tgt 50:06:04:82:bf:cf:e0:43 src_lun 0x5 dst_tgt 50:06:0e:80:03:4e:95:13 dst_lun 0x0 switchA(config-session)# exit
The following example shows how to start the data migration job on switch A:
switchA(config)# dmm module 8 job 2345 start Started New DMM Job Configuration. Do not exit sub-mode until configuration is complete and committed switchA(config)# exit
The following example shows how to configure the data migration sessions on switch B:
switchB(config)# dmm module 4 job 2345 session switchB(config-session)# server 21:0d:00:0d:0a:01:2b:82 src_tgt 50:06:04:82:bf:cf:e0:5d src_lun 0x5 dst_tgt 50:06:0e:80:03:4e:95:03 dst_lun 0x0 switchB(config-session)# exit
The following example shows how to start the data migration job on switch B:
switchB(config)# dmm module 8 job 2345 start Started New DMM Job Configuration. Do not exit sub-mode until configuration is complete and committed switchB(config)# exit
The topology (Figure 1), is dual fabric with multipath ports defined in the server and redundant paths to the storage devices.
On both switches, the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch is located in slot 8. The PWWNs for the ports are listed here:
Port |
PWWN |
---|---|
Host 1 |
21:00:00:e0:8b:0a:5d:e7 |
VI 1 |
21:0d:00:0d:ec:02:2d:82 |
ES1 |
50:06:04:82:bf:cf:e0:43 |
NS1 |
50:06:0e:80:03:4e:95:13 |
|
|
Host 2 |
21:01:00:e0:8b:0a:5d:e7 |
VI 2 |
21:0d:00:0d:0a:01:2b:82 |
ES2 |
50:06:04:82:bf:cf:e0:5d |
NS2 |
50:06:0e:80:03:4e:95:03 |
The following example shows how to configure the data migration job on switch A:
switchA(config)# dmm module 8 job 2345 create Started New DMM Job Configuration. Do not exit sub-mode until configuration is complete and committed switchA(config-dmm-job)# server vsan 100 pwwn 21:00:00:e0:8b:0a:5d:e7 switchA(config-dmm-job)# storage vsan 100 pwwn 50:06:04:82:bf:cf:e0:43 existing switchA(config-dmm-job)# storage vsan 100 pwwn 50:06:0e:80:03:4e:95:13 new switchA(config-dmm-job)# peer 10.10.2.4 switchA(config-dmm-job)# attributes job_type 2 job_mode 1 job-rate 1 job-method 1 switchA(config-dmm-job)# commit switchA(config-dmm-job)# end Ending DMM Job Configuration. If the Job was not committed, it will be required to reconfigure the job. switchB#
The following example shows how to configure the data migration job on switch B:
switchB# configure terminal switchB(config)# dmm module 8 job 2345 create Started New DMM Job Configuration. Do not exit sub-mode until configuration is complete and committed switchB(config-dmm-job)# server vsan 100 pwwn 21:01:00:e0:8b:0a:5d:e7 switchB(config-dmm-job)# storage vsan 100 pwwn 50:06:04:82:bf:cf:e0:5d existing switchB(config-dmm-job)# storage vsan 100 pwwn 50:06:0e:80:03:4e:95:03 new switchB(config-dmm-job)# peer 10.10.1.8 switchB(config-dmm-job)# attributes job_type 2 job_mode 1 job-rate 1 job-method 1 switchB(config-dmm-job)# commit switchB(config-dmm-job)# end Ending DMM Job Configuration. If the Job was not committed, it will be required to reconfigure the job. switchB#
The following example shows how to configure the data migration sessions on switch A:
switchA(config)# dmm module 4 job 2345 session switchA(config-session)# server 21:0d:00:0d:ec:02:2d:82 src_tgt 50:06:04:82:bf:cf:e0:43 src_lun 0x5 dst_tgt 50:06:0e:80:03:4e:95:13 dst_lun 0x0 switchA(config-session)# exit
The following example shows how to configure the data migration sessions on switch B:
switchB(config)# dmm module 4 job 2345 session switchB(config-session)# server 21:0d:00:0d:0a:01:2b:82 src_tgt 50:06:04:82:bf:cf:e0:5d src_lun 0x5 dst_tgt 50:06:0e:80:03:4e:95:03 dst_lun 0x0 switchB(config-session)# exit
The DMM CLI provides a set of commands to control jobs that have been configured. The job state determines which commands are valid to run. Table shows job state values.
Job Status Value |
Description |
---|---|
Created |
The job has been created but has not been scheduled. |
Scheduled |
The job has been configured with a scheduled start time. It will automatically start at that time. |
Complete |
The job has been completed successfully. |
Verify |
The completed job is being verified. |
Stopped |
The job has been stopped manually by the user. |
Failed |
The job has been stopped because of failures. See table in DMM Jobs in Fail State for details. |
In_Progress |
The job is currently running. |
Reset |
The job has been reinitialized because of failures. See table inDMM Jobs in Reset State for details. |
Finishing |
The Method 2 job is in the final copy iteration. |
Verify_Stopped |
The job verification has been stopped. |
Verify_Complete |
The job verification has been completed. |
Verify_Failure |
The job verification is unsuccessful. |
Table describes the data migration commands.
Command |
Description |
Valid Job Status Values |
---|---|---|
Verify |
Performs offline verification of the selected job, and you are prompted to confirm the verification command. |
Completed, VerifyStopped, Verify_Failure |
Destroy |
Deletes the selected job (or jobs) and retrieves the job execution log from the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch, and you are prompted to confirm the delete command. |
Stopped, Failed, Completed, Reset, VerifyStopped, Verify_Failure, Created, Scheduled |
Stop |
Stops the selected job. |
InProgress, Verify |
Start |
Starts the selected job. |
Created, Failed |
Modify |
Allows you to modify the job attributes or configure a start time for the selected job. |
Created, Scheduled, Reset, Stopped InProgress |
Schedule |
Allows you to set up schedules. |
Created, Scheduled, Stopped |
Validate |
Validates the stored configuration for a job in a Reset state. |
Reset |
Finish |
Completes the selected job only in case of Method 2. |
InProgress |
Note | You must enter these commands on the switch with sessions configured. If both the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch have sessions configured, enter the commands on both switches. |
To control the data migration job, follow these steps:
Step 1 | switchA(config)#
dmm
module
module-id
job
job-id
start
Starts a data migration job or restarts a job that was stopped or failed.
The start command is ignored if the job is scheduled for a future time. Use the schedule now command to start a scheduled job. | ||
Step 2 | switchA(config)#
dmm
module
module-id
job
stop
Stops execution of the job.
| ||
Step 3 | switchA(config)#
dmm
module
module-id
job
job-id
validate
If the job is in the reset state, enter the validate command. After validation, start the job using the start command.
| ||
Step 4 | switchA(config)#
dmm
module
module-id
job
job-id
schedule [now |
hour
hr
min
min
day
day
month
month [year] |
reset]
Configures a scheduled start time for the data migration job. Enter the schedule now to start the job immediately. Enter the reset to remove the scheduled start time from the job. The job remains in the created state until you manually start it.
|
Use the show dmm job command in the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch CLI to monitor the status of data migration jobs, and the current progress of jobs and sessions that are in progress.
To monitor data migration jobs, follow these steps:
Step 1 | switch#
attach
module
module-id
Enters CLI mode on the MSM-18/4 module, MDS 9222i switch or MDS 9250i switch. |
Step 2 | module#
show
dmm
job
Displays summary information about the data migration jobs configured on this MSM-18/4 module, MDS 9222i switch or MDS 9250i switch. |
Step 3 | module#
show
dmm
job
job-id
job-id {detail |
session |
storage}
Displays information about the specified job. The detail command displays the job attributes, schedule, server HBA and storage ports, the job log, and job error log. The session command displays the sessions included in the job. The storage command displays the storage ports included in the job. |
For additional information about monitoring and troubleshooting data migration jobs, see Troubleshooting Cisco MDS DMM.
When all of the sessions in a job have completed successfully, you can delete the job in coordination with other post-migration tasks.
When all of the sessions in a job have completed successfully, you can optionally perform verification of the data in the new storage location. The MSM-18/4 module, MDS 9222i switch or MDS 9250i switch compares the data in the new storage with the data in the existing storage by reading each migration region from the existing and new storage, and then performing a comparison of the data.
To perform migration verification, follow these steps:
Step 1 | switch(config)#
dmm
module
module-id
job
job-id
verify
Verifies the data migration by comparing the data in the new storage with the data in the existing storage. The verify command operates in off line mode. |
Step 2 | switch(config)#
show
dmm
job
job-id
session [session-id
sess-id]
Displays the verification progress while verification is performed on a job. |
Note | Verification is performed in off line mode. Any service using the existing storage needs to be quiesced before you start verification. |
Caution | Verification is recommended only for the test environment and is NOT recommended for the production environment because this process brings down all the existing applications. |
After the data migration job has completed successfully, you need to reconfigure the server to use the new storage. The exact post-migration configuration steps vary depending on the operating system of the server.
To reconfigure the server, you might need to take the following steps:
To finish the data migration job, follow this step:
When job is in the Failed state, you can restart the job using the start command. This command will start the job from point of last failure.
The job should be in Failed state to restart the failed session.
When the sessions in a job have failed, you can restart them using the restart_session command. This command restarts all the failed sessions in the job.
Note |
|
To restarts all the failed sessions in the job, follow this step:
The job should be in InProgress state to restart the failed sessions.
Command or Action | Purpose |
---|
To delete the data migration job, follow this step: