Can iSCSI Targets be Renamed on an EqualLogic PS Series Storage Area Network?

I received a tweet from someone a few days ago asking if it was possible to rename an iSCSI target on an EqualLogic PS Series Storage Area Network (SAN). I wasn’t sure, but it was interesting enough to research and determine if it was possible or not.

Based on a screenshot provided by this person, they wanted to change the default iSCSI target name prefix so new volumes that are created have a different target prefix. It’s possible to change this setting using PowerShell, but not the GUI:

change-iscsi-target13.jpg

Even though this setting change shows up in the GUI, it doesn’t have any effect when creating a new volume. You still end up with the original default iSCSI target name.

change-iscsi-target151.jpg

Ok, but what about changing the iSCSI target name on an existing volume?

After looking at the PowerShell cmdlet parameters for Set-EQLVolume and looking in the GUI, it doesn’t appear that an iSCSI target can be renamed. The alias can be changed, but that doesn’t accomplish the same thing as renaming the iSCSI target.

change-iscsi-target1.jpg

Even when creating a new volume, there’s no way in PowerShell or using the GUI to specify a custom iSCSI target name. It appears to be derived from the volume name. It’s possible to rename the volume after it’s created, but you’re stuck with the original iSCSI target name. My guess is this is the reason you would want to rename the iSCSI target.

The only way to change the iSCSI target name on an EqualLogic PS Series SAN that I’ve found is to clone the volume to the name you want for the volume and iSCSI target.

Take the volume offline in the OS first:

change-iscsi-target2.jpg

Then disconnect from the iSCSI target by using the iSCSI Control Panel:

change-iscsi-target3.jpg

Open PowerShell and connect to the SAN:

$GrpAddr = "192.168.10.100"
Import-Module "c:\program files\EqualLogic\bin\EqlPSTools.dll"
Connect-EqlGroup -GroupAddress $GrpAddr -Credential (Get-Credential)

change-iscsi-target4.jpg

The clone process does not copy the description, ACL’s, snapshot schedule, or replication settings. Here are the settings on the original volume that we want to replicate to the new one with the exception of the volume name and iSCSI target name:

$VolName = 'mikefrobbins'
$vol = Get-EqlVolume -VolumeName $VolName
$acl = Get-EqlVolumeACL -VolumeName $VolName
$sched = Get-EqlSchedule -VolumeName $VolName
New-Object -TypeName PSObject -Property @{
'Volume Name' = $vol.volumename;
'Volume Description' = $vol.volumedescription;
'ISCSI Target Name' = $vol.iscsitargetname;
'Initiator IP Address' = $acl | foreach {$_.initiatoripaddress};
'Acl Target Type' = $acl | foreach {$_.acltargettype};
'Schedule Name' = $sched.schedulename;
'Schedule Type' = $sched.scheduletype;
'Start Time' = $sched.starttime;
'Time Frequency' = $sched.timefrequency;}

change-iscsi-target11.jpg

Clone the volume using a PowerShell script similar to the following one. The current volume name is “mikefrobbins” and I’m cloning it to a volume named “mikefrobbins2” along with copying the description, ACL’s, and snapshot settings from the original volume, all with PowerShell. Each of these steps would be a manually process through the GUI. Always start out by taking a snapshot of the volume before making any changes to it. The last thing this script does is remove the original volume’s ACL’s and set it offline to make sure nothing can access it while keeping it around for a few days just in case an old snapshot is needed.

$OldVolName = 'mikefrobbins'
$NewVolName = 'mikefrobbins2'
$VolInfo = Get-EqlVolume -VolumeName $OldVolName
$ACLSetting = Get-EqlVolumeACL -VolumeName $OldVolName
$SchedSetting = Get-EqlSchedule -VolumeName $OldVolName
New-EqlSnapshot -VolumeName $OldVolName
New-EqlVolumeClone -VolumeName $OldVolName -CloneName $NewVolName -CloneDescription (
$volInfo).VolumeDescription
New-EqlVolumeACL -VolumeName $NewVolName -InitiatorIpAddress ($ACLSetting[0]
).InitiatorIpAddress -ACLTargetType ($ACLSetting[0]).AclTargetType
New-EqlVolumeACL -VolumeName $NewVolName -InitiatorIpAddress ($ACLSetting[1]
).InitiatorIpAddress -ACLTargetType ($ACLSetting[1]).AclTargetType
New-EqlSchedule -VolumeName $NewVolName -ScheduleName ($SchedSetting).ScheduleName -ScheduleType (
$SchedSetting).ScheduleType -StartTime ($SchedSetting).StartTime -TimeFrequency ($SchedSetting
).TimeFrequency -KeepCount ($SchedSetting).KeepCount
Remove-EqlSchedule -VolumeName $OldVolName
Remove-EqlVolumeACL -VolumeName $OldVolName
Set-EqlVolume -VolumeName $OldVolName -OnlineStatus 'offline'

change-iscsi-target52.jpg

The original volume should be removed at a later date. I covered removing volumes in the Use PowerShell to Manage an EqualLogic SAN guest blog that I wrote for the Hey, Scripting Guy! Blog a few weeks ago.

Now to verify the settings have been copied to the new volume that were previously on the old one. I’m running the same script as before except with $VolName = ‘mikefrobbins2’:

change-iscsi-target12.jpg

From the iSCSI Control Panel, connect to the new iSCSI target:

change-iscsi-target6.jpg

Remove the old iSCSI target from the list on the “Favorite Targets” tab:

change-iscsi-target9.jpg

Verify the volume is online in the OS and that it has the correct drive letter assigned to it:

change-iscsi-target7.jpg

From the iSCSI control panel, click the “Auto Configure” button on the “Volume and Devices” tab so the correct drive letter in the OS is mapped to the iSCSI target each time the server is restarted:

change-iscsi-target10.jpg

Disconnect from the SAN when you’re finished:

Disconnect-EqlGroup -GroupAddress $GrpAddr

change-iscsi-target8.jpg

ยต