Moving from vSphere 5.5 to vSphere 6.5 Part 2 #Upgrade #Migration #Fresh #vExpert #vSphere #VCSA


So now we have got all the back story out of the way with Part 1, we can get into the meat of it all.

The Middle

I used various scripts, from various places and used the web client to get everything how I needed it to be.

These scripts are provided AS IS, use them at your own risk, they worked for me. I have credited everyone I borrowed the source scripts from, and even provided the location of the source scripts too. A lot of people put effort into making the scripts, so I thought it would only be fair people knew where they came from. I made edits and adjusted as I needed to get the job done.

Creating new VSS vSwitch1 on every host – script


Connect-VIServer <InsertvCenterHere>

Get-Cluster -Name "Production Cluster" | Get-VMHost | New-VirtualSwitch -Name vSwitch1
Disconnect-VIServer <InsertvCenterHere> -confirm:$false

Creating new VSS PGs on every host – script

#This assumes you have already created a vSwitch1 on every host, and then it creates the port groups as listed and gives them the required VLAN ID too. Feel free to rename and add more as needed
Connect-VIServer <InsertvCenterHere>
$switches = @{
      'DMZ' =	2
	'Private' =	3
	'Secure'	 = 4
	'Prod_Cluster' =	5
	'Test_Cluster' =	6
	'Nodes' =	7
	'Application' =	8
	'Backup' =	9
	'Database' =	10
	'DMZ1' = 11
	'AppDB' =	12
	'Dev AppDB' =	81
	'Dev DMZ' =	82
	'FleetDMZ'	 = 84
	'Virtual Application' =	632
	'Virtual Application 2' = 785
	'Virtual Database' =	852
	'Web Servers' =	65
	'X-Hosting' =	512
}

foreach($vlan_name in $switches.keys) {
    write-host ("Adding VLAN ID " + $switches.$vlan_name + " (" + $vlan_name + ")")
    get-cluster "InsterCLusterhere"|get-vmhost|get-virtualswitch -name "vSwitch1"|new-virtualportgroup -name $vlan_name -vlanid $switches.$vlan_name
}
Disconnect-VIServer <InsertvCenterHere> -confirm:$false

Migrating 2 vmnics over to vSwitch1 – script

#Taken from https://blog.linoproject.net/vmware-vsphere-vswitch-migration/
#Uncomment the vCenter/$pnics you want it to work on
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false

Connect-VIServer <InsertvCenterHere>
 
#Adjust cluster name of the cluster you want to work on, OPTIONAL - add hostname if you want to work on a per-host basis to be a bit safer and controlled
#You vmnics will be different, so adjust as needed
$hosts = Get-Cluster -Name  "Production Cluster" #| Get-VMHost -Name host1
 foreach ($singlehost in $hosts){
    $vss = Get-VirtualSwitch -VMHost $singlehost -Name "vSwitch1"
	#vmnics to migrate FIRST
	$pnics = $singlehost | Get-VMHostNetworkAdapter -Physical -Name "vmnic1", "vmnic3"
	#vmnics to migrate LAST after you have moved all the VMs across, come back to this later on
	#$pnics = $singlehost | Get-VMHostNetworkAdapter -Physical -Name "vmnic2", "vmnic5"

    Add-VirtualSwitchPhysicalNetworkAdapter -VirtualSwitch $vss -VMHostPhysicalNic $pnics -confirm:$false #-WhatIf
 }
 Disconnect-VIServer <InsertvCenterHere> -confirm:$false
 #Make sure you are only connected to one vcenter!

Moving the VMs to the VSS -script


#http://www.virtu-al.net/2009/10/19/powercli-mass-vm-portgroup-change/
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
#Since the VDS and VSS PG have exactly the same name, we realised we needed to rename the VDS PG slightly otherwise the script would fail. Renaming a VDS PG doesnt disconnect the VMs on it, this does happen when you do it with a VSS PG. 
#-WhatIf was used for testing
#It gets the PG name you provide, on the VDS it adds -Temp to the name, and then goes through the whole cluster, finding VMs on the VDS PG and moving them to the VSS PG with the same name on the host, please adjust as needed

Connect-VIServer <InsertvCenterHere>
 
$NetworkName = "Whatever your PG network name is"
$TempNetworkName = $NetworkName + "-Temp"
Get-VDPortgroup -Name $NetworkName | Set-VDPortgroup -Name $TempNetworkName -Confirm:$False #-WhatIf
Get-Cluster -Name "Production Cluster "  | Get-VMHost|Get-VM |Get-NetworkAdapter |Where {$_.NetworkName -eq $TempNetworkName } |Set-NetworkAdapter -NetworkName $NetworkName -Confirm:$false #-WhatIf
Get-VDPortgroup -Name $TempNetworkName | Set-VDPortgroup -Name $NetworkName -Confirm:$False
Disconnect-VIServer <InsertvCenterHere> -confirm:$false

Migrate over the final vmnics -script

#Taken from https://blog.linoproject.net/vmware-vsphere-vswitch-migration/
#Uncomment the vCenter/$pnics you want it to work on, this is the same script as the one used earlier but now the second half as been uncommented and the first half commented out
#You vmnics will be different, so adjust as needed
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
Connect-VIServer <InsertvCenterHere>
 
#Adjust cluster name of the cluster you want to work on, OPTIONAL - add hostname if you want to work on a per-host basis to be a bit safer and controlled
$hosts = Get-Cluster -Name  "Production Cluster" #| Get-VMHost -Name host1
 foreach ($singlehost in $hosts){
    $vss = Get-VirtualSwitch -VMHost $singlehost -Name "vSwitch1"
	#vmnics to migrate FIRST
	#$pnics = $singlehost | Get-VMHostNetworkAdapter -Physical -Name "vmnic1", "vmnic3"
	#vmnics to migrate LAST after you have moved all the VMs across, come back to this later on
	$pnics = $singlehost | Get-VMHostNetworkAdapter -Physical -Name "vmnic2", "vmnic5"

    Add-VirtualSwitchPhysicalNetworkAdapter -VirtualSwitch $vss -VMHostPhysicalNic $pnics -confirm:$false #-WhatIf
 }
 Disconnect-VIServer <InsertvCenterHere> -confirm:$false
 #Make sure you are only connected to one vcenter!

Remove hosts from VDS – GUI

Backup and import the VDS into the new VCSA – GUI

https://kb.vmware.com/s/article/2149769 this caught me off guard!

Copy Tags to new VCSA – script

#This script was created by our scripting guru at work, it transfers all the tags that are in the old vCenter to the new vCenter, just the tags NOT what they are assigned to, that comes later

Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false|out-null

$src_server = "Source Old vCenter"
$dst_server = "Destination New vCenter"
    
Connect-VIServer -server $src_server|out-null

$src_tag_cats = get-tagcategory
write-output "-- SRC Tag Categores:"
$src_tag_cats.name
$src_tags = get-tag
write-output "-- SRC Tags:"
$src_tags.name
write-output "-- SRC Attributes:"
$src_attr = get-customattribute #-name "CI *"
$src_attr.name
write-output "-- SRC Template Tags:"
$src_template_tags = get-template|get-tagassignment
$src_template_tags

disconnect-viserver -server * -confirm:$false

Connect-VIServer -server $dst_server|out-null

$dst_tag_cats = get-tagcategory
write-output "-- DST Tag Categores:"
$dst_tag_cats.name
$dst_tags = get-tag
write-output "-- DST Tags:"
$dst_tags.name
write-output "-- DST Attributes:"
$dst_attr = get-customattribute #-name "CI *"
$dst_attr.name

$src_tag_cats|%{
    if($dst_tag_cats.name -notcontains $_.name) {
        write-output ($dst_server + " is missing tag category '" + $_.Name + "'")
        New-TagCategory -Name $_.name -Cardinality $_.Cardinality -Description $_.Description
    }
}

$src_tags|%{
    if($dst_tags.name -notcontains $_.name) {
        write-output ($dst_server + " is missing tag '" + $_.Name + "'")
        New-Tag -Name $_.name -category ([string]($_.category)) -Description $_.Description
    }
}

$src_attr|%{
    if($dst_attr.name -notcontains $_.name) {
        write-output ($dst_server + " is missing attribute '" + $_.Name + "'")
        New-CustomAttribute -name $_.name
    }
}

disconnect-viserver -server * -confirm:$false

Export and Import VM Folder Structure – script

https://github.com/kmruddy/vcenter_migration Credit to Kyle Ruddy for this bad boy, it pulls the folder structure from the old vCenter and copies it exactly into the new vCenter, all the other bits were never finished but the folder migration works flawlessly!

Export to csv and import from csv which VMs have Tags assigned  – script

So this will export all VM tags to csv before, and when the VMs are all in the new vCenter you can use the next script to apply the tags again to the VMs


#So Export all VM tags to csv before, and when the VMs are all in the new vCenter you can use the next script to apply the tags again to the VMs
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
Connect-VIServer <OldvCenterServer> 
$vm_csv = 'C:\temp\OldVC-vm-tags.csv'

"vm,tag"|out-file -filepath $vm_csv -Encoding ascii

$vms = Get-VM
foreach($vm in $vms) {
    $tags = Get-TagAssignment -Entity $vm
    foreach($tag in $tags) {
        ($vm.name + "," + $tag.tag.name) |out-file -filepath $vm_csv -append -Encoding ascii
    }
}

Disconnect-VIServer <OldvCenterServer> -confirm:$false

#Make sure you are only connected to one vCenter!

Once the VMs are all in the new vCenter, use this script to apply the VM tags from the csv exported earlier


#Once the VMs are all in the new vCenter, use this script to apply the VM tags from the csv exported earlier
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
Connect-VIServer <NewvCenterServer>
import-csv -path C:\temp\OldVC-vm-tags.csv|%{get-vm -name $_.vm|New-TagAssignment -tag $_.tag -WhatIf}
Disconnect-VIServer <NewvCenterServer> -confirm:$false

Export to csv and import from csv which Datastores have Tags assigned – script

So this will export all Datastore tags to csv, and when everything has been moved over into the new vCenter you can use the next script to apply the tags again to the VMs

#So this will export all Datastore tags to csv, and when everything has been moved over into the new vCenter you can use the next script to apply the tags again to the VMs
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
Connect-VIServer <OldvCenterServer> 
$ds_csv = 'C:\temp\OldVC-ds-tags.csv'
"ds,tag"|out-file -filepath $ds_csv -Encoding ascii
get-datastore|get-tagassignment|%{
   ($_.entity.name + "," + $_.tag.name)|out-file -filepath $ds_csv -append -Encoding ascii
}
Disconnect-VIServer <OldvCenterServer> -confirm:$false

Once everything has been moved over to the new vCenter, use this script to apply the VM tags from the csv exported earlier


#Once everything has been moved over to the new vCenter, use this script to apply the VM tags from the csv exported earlier

Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
Connect-VIServer <NewvCenterServer>
import-csv -path C:\temp\OldVC-ds-tags.csv|%{get-datastore -name $_.ds|New-TagAssignment -tag $_.tag -WhatIf}
Disconnect-VIServer <NewvCenterServer> -confirm:$false
#Make sure you are only connected to one vcenter!

Export to csv and import from csv the VDS Port Groups that have Tags assigned – script

This Exports all the VDS Port Group Tags to csv, so you can import them into the new vCenter when you have everything where you want it


#This Exports all the VDS Port Group Tags to csv, so you can import them into the new vCenter when you have everything where you want it
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
#Connect-VIServer <OldvCenterServer> 
$ds_csv = 'C:\temp\OldVC-vds-tags.csv'
"pg,tag"|out-file -filepath $ds_csv -Encoding ascii
Get-VDPortgroup |get-tagassignment|%{
   ($_.entity.name + "," + $_.tag.name)|out-file -filepath $ds_csv -append -Encoding ascii
}
Disconnect-VIServer <OldvCenterServer> -confirm:$false
#Make sure you are only connected to one vcenter!

This script imports all the VDS Port Group Tags from the CSV into the new vCenter when you are ready


#This script imports all the VDS Port Group Tags from the CSV into the new vCenter when you are ready
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false
Connect-VIServer <NewvCenterServer>
import-csv -path C:\temp\OldVC-vds-tags.csv|%{Get-VDPortgroup -name $_.pg|New-TagAssignment -tag $_.tag } #-whatif}
Disconnect-VIServer <NewvCenterServer> -confirm:$false

Export to csv and import from csv the DRS cluster rules – script

This exports the DRS Rules of a cluster to a file, so you can import them into the new Cluster in the new vCenter when you are ready

#This exports the DRS Rules of a cluster to a file, so you can import them into the new Cluster in the new vCenter when you are ready
#https://communities.vmware.com/message/1200272

Connect-VIServer <OldvCenterServer>
$outfile = "C:\temp\DRSrules.txt"
Remove-Item $outfile
$clusterName = "Production Cluster"
$rules = get-cluster -Name $clusterName | Get-DrsRule

foreach($rule in $rules){
  $line = (Get-View -Id $rule.ClusterId).Name
  $line += ("," + $rule.Name + "," + $rule.Enabled + "," + $rule.KeepTogether)
  foreach($vmId in $rule.VMIds){
    $line += ("," + (Get-View -Id $vmId).Name)
  }
  $line | Out-File -Append $outfile 
}
Disconnect-VIServer <OldvCenterServer> -Confirm:$false

This imports the DRS Rules of a cluster from the file when you are ready for that step

#https://communities.vmware.com/message/1200272
#This imports the DRS Rules of a cluster from the file when you are ready for that step
Connect-VIServer <NewvCenterServer>
$file = "C:\temp\DRSrules.txt"
$rules = Get-Content $file

foreach($rule in $rules){
  $ruleArr = $rule.Split(",")
  if($ruleArr[2] -eq "True"){$rEnabled = $true} else {$rEnabled = $false}
  if($ruleArr[3] -eq "True"){$rTogether = $true} else {$rTogether = $false}
  get-cluster $ruleArr[0] | `
    New-DrsRule -Name $ruleArr[1] -Enabled $rEnabled -KeepTogether $rTogether -VM (Get-VM -Name ($ruleArr[4..($ruleArr.Count - 1)])) 
}

Disconnect-VIServer <NewvCenterServer> -Confirm:$false

Export to csv the VMs Folder location – script

This script works on a per-host basis, so you change the hostname after every run, this works well for me because it gave me a separate csv for every host. This made dealing with any importing issues very easy as I was importing hosts into the new vCenter on a per-host basis.


#I have taken this script from below discussion
# By https://communities.vmware.com/message/1828708#1828708
# By https://vprhlabs.blogspot.co.uk/p/vcenter-migration_93.html
#This script works on a per-host basis, so you change the hostname after every run, this works well for me because it gave me a separate csv for every host. This made dealing with any importing issues very easy as I was importing hosts into the new vCenter on a per-host basis.
Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false

#Connect-VIServer <OldvCenterServer> 

New-VIProperty -Name 'BlueFolderPath' -ObjectType 'VirtualMachine' -Value {
    param($vm)

    function Get-ParentName{
        param($object)

        if($object.Folder){
            $blue = Get-ParentName $object.Folder
            $name = $object.Folder.Name
        }
        elseif($object.Parent -and $object.Parent.GetType().Name -like "Folder*"){
            $blue = Get-ParentName $object.Parent
            $name = $object.Parent.Name
        }
        elseif($object.ParentFolder){
            $blue = Get-ParentName $object.ParentFolder
            $name = $object.ParentFolder.Name
        }
        if("vm","Datacenters" -notcontains $name){
            $blue + "/" + $name
        }
        else{
            $blue
        }
    }

    (Get-ParentName $vm).Remove(0,1)
} -Force | Out-Null 

$dcName = "Production DC"
$hostname = "host1"

Get-VM -Location (Get-Datacenter -Name $dcName | Get-VMHost -Name $hostname )  | Select Name, VMHost, BlueFolderPath | Export-Csv "C:\temp\$hostname.csv" -NoTypeInformation -UseCulture 

Disconnect-VIServer <OldvCenterServer>-confirm:$false

Move VMs into their correct folder structure in new VCSA – script

Worked 80% of the time, the times it didn’t, you just had to find the VM name in the csv and move the VMs yourself

Now the reason I exported the folder location of the VMs on a per-host basis in the previous script, was because when you moved the host over into the new vCenter, this script would move the VMs into the correct folders. the issue was it worked about 80% of the time, and I couldn’t quite figure out why. So I accepted that I would have to manually move some VMs, into the correct location. This was simple enough as I could open the exported CSV, and then cross reference which VMs did not move into their require folder and just move them myself.


# By https://communities.vmware.com/message/1828708#1828708
# By https://vprhlabs.blogspot.co.uk/p/vcenter-migration_93.html
#Import Folders and Move VMs to its folder
#Now the reason I exported the folder location of the VMs on a per-host basis in the previous script, was because when you had moved the host over into the new vCenter, this script would move the VMs into the correct folders. the issue was it worked about 80% of the time, and I couldn't quite figure out why. So I accepted that I would have to manually move some VMs, into the correct location. This was simple enough as I could open the exported CSV, and then cross reference which VMs did not move into their require folder and just move them myself.

#you update the $csv3 variable with the csv file for the host you have imported in, the script then uses the csv and tries to move the VMs into the correct folder. When it's done, you will probably have a few VMs that it did not move, and you will have to cross reference the csv file yourself and move the VMs yourself.

Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false

Connect-VIServer <NewvCenterServer>

$vmsonha5 = Get-Cluster -Name "Production Cluster" | Get-VM  |sort name
$csv3 = "C:\temp\vmostfolder.csv"

$newDatacenter = "Production DC" 
#$newFolder = "vCenter-Folders" 

#$startFolder = New-Folder -Name $newFolder -Location (Get-Folder -Name vm -Location (Get-Datacenter -Name $newDatacenter))
$startfolder = Get-Folder #"vCenter-Folders" 

$testing2 = Import-Csv $csv3 -UseCulture 

$testing2 | %{
    $location = $startFolder
    $_.BlueFolderPath.TrimStart('/').Split('/') | %{
        $tgtFolder = Get-Folder -Name $_ -Location $location -ErrorAction SilentlyContinue
        if(!$tgtFolder){
            $location = New-Folder -Name $_ -Location $location
        }
        else{
            $location = $tgtFolder
        }
    }
     
#     Write-Host $location
    $hm = $_.Name
$wups = $vmsonha5 | where {$_.name -eq $hm}

#Write-Host $hm
Move-VM -VM $wups -Destination $location -Confirm:$false -RunAsync
    }

    Disconnect-VIServer <NewvCenterServer> -confirm:$false

Add hosts to VDS – GUI

Migrate 2x vmnics from VSS to VDS – GUI

Migrate VMs from VSS to VDS – script

This does the opposite of the script we used earlier, it moves VMs from the VSS PGs to the VDS PGs, adjust $NetworkName accordingly


#This does the opposite of the script we used earlier, it moves Vms from the VSS PGs to the VDS PGs, adjust $NetworkName accordingly
#http://www.virtu-al.net/2009/10/19/powercli-mass-vm-portgroup-change/
#Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false

Connect-VIServer <NewvCenterServer>
 
$NetworkName = "DMZ"
$TempNetworkName = $NetworkName + "-Temp"
Get-VDPortgroup -Name $NetworkName | Set-VDPortgroup -Name $TempNetworkName -Confirm:$False #-WhatIf
Get-Cluster -Name "Production Cluster"  | Get-VMHost|Get-VM |Get-NetworkAdapter |Where {$_.NetworkName -eq $NetworkName } |Set-NetworkAdapter -NetworkName $TempNetworkName -Confirm:$false #-WhatIf
Get-VDPortgroup -Name $TempNetworkName | Set-VDPortgroup -Name $NetworkName -Confirm:$False


Disconnect-VIServer <NewvCenterServer> -confirm:$false

Migrate over the remaining vmnics to the VDS – GUI

Export and import Custimziation Specs – script

This script exports the customization specs, so you can import them to the new vCenter when you are ready


#This script exports the customization specs, so you can import them to the new vCenter when you are ready
#http://www.van-lieshout.com/2009/07/export-and-import-customization-profiles-using-powershell/ 
#With some modifications

#Variables
$VCServer = "<OldvCenterServer>"
$path = "C:\temp\Custimization_Specs"

#Connect to vCenter Server
$VC = Connect-VIServer $VCServer

#Export Customization Profiles
$view = get-view CustomizationSpecManager
ForEach ($CustomizationProfile in $view.info) {
    $xml = $view.CustomizationSpecItemToXml($view.GetCustomizationSpec($CustomizationProfile.name))
    $xml | Out-File ($path + "\" + ($CustomizationProfile.name) + ".xml")
}

Disconnect-VIServer "<OldvCenterServer>" -Confirm:$false

This script now imports the customization specs into the new vCenter Server


#This script now imports the customization specs into the new vCenter Server
#http://www.van-lieshout.com/2009/07/export-and-import-customization-profiles-using-powershell/ 
#With some modifications
#Variables
$VCServer = "<NewvCenterServer>"
$path = "C:\temp\Custimization_Specs"

#Connect to vCenter Server
$VC = Connect-VIServer $VCServer

#Import Customization Profiles
$view = Get-View CustomizationSpecManager
ForEach ($xmlfile in (Get-ChildItem -Path $path | where {$_.extension -eq ".xml"})) {
    $xml = Get-Content -path $xmlfile.FullName
    $view.CreateCustomizationSpec($view.XmlToCustomizationSpecItem($xml))
}

Disconnect-VIServer "<OldvCenterServer>" -Confirm:$false

Adjust Core Dumps to point to new VCSA – script


#http://www.cloudyfuture.net/2016/02/23/configure-dump-collector-with-powercli-in-vsphere-6/
#https://notesfrommwhite.net/2016/01/20/configure-and-test-of-esxi-dump-collector/

Set-PowerCLIConfiguration -DefaultVIServerMode single -Scope Session -confirm:$false

Connect-VIServer <NewvCenterServer>
$vcenterip = '<NewvCenterServerIP>'
foreach($vmhost in Get-Cluster -Name "Production Cluster"|Get-VMHost){
    $esxcli = Get-EsxCli -VMHost $vmhost.Name
    $esxcli.system.coredump.network.set($null,"vmk0",$vcenterip,6500)
    $esxcli.system.coredump.network.set($true)
    $esxcli.system.coredump.network.get()
    }
    foreach($vmhost in Get-Cluster -Name "Production Cluster"|Get-VMHost){
$esxcli = Get-EsxCli -VMHost $vmhost.Name
Write-Host "Checking dump collector on host $vmhost.name"
$esxcli.system.coredump.network.check()
}
    Disconnect-VIServer <NewvCenterServer> -Confirm:$false

I disconnected each host from the 5.5 vCenter and added them to the new VCSA in doing so all the info in the old vCenter was still there if I needed it at any point. I did this step manually as much as I like automation for a lot of things, there are certain steps that I just like to do myself, it makes me feel better and it makes the business feel better.

Once all the hosts and VMs were in their folders, I then used the scripts to apply the correct tags to the various VMs/datastores/VDS port groups.

The new VCSAs I manually created all the clusters etc to mirror what the original 5.5 vCenter had. The actual migration was done during normal hours and no one noticed. The odd thing the Devs noticed that I fixed on the fly, for example, I originally forgot the customization specs! But because the old vCenter was still running you can still pull everything you need even when everything is in a disconnected state as it’s all there in the db.

I deployed new instances of SRM and VR and configured them all up so they were good to go. The SRM configuration when I initially did it for the business I created a spreadsheet detailing it all and since all this heavy lifting was done at the start, re-creating it all was pretty simple and didn’t take that long

Once everything was in the new VCSA I then used Veeams repointing scripts to repoint the backups (https://www.veeam.com/kb2136). It’s a pretty simple process and it picked up the majority of the VMs and repointed them. A few it couldn’t find. I had a slight increase in backup storage space till the retention periods expired and space freed up and then everything went back to exactly as it was before. Out of the whole process, this was my biggest concern as I couldn’t really test it beforehand to confirm it worked well and if it didn’t I may have to roll back (which would be pretty simple because everything was just in a disconnected state in the old 5.5 vCenters). I also had to migrate the Veeam DB from the old SQL box to a new SQL box, Veeam makes that super easy and I also had to upgrade Veeam beforehand to a build that supported the 6.5u1

The End!

When it was all said and done, the business was very happy, I told management that there would be the odd niggle or missing bit that would be rectified on the fly and anything that I didn’t think need to be copied across and people couldn’t prove to me they needed were left behind. The old vCenters were left online for a few weeks in case it became apparent something needed to be verified or exported that originally wasn’t needed.

There is now no Linked Mode, I am a firm believer of keeping complexity to a minimum and the business confirmed there was no requirement for linked mode, so this was an easy decision to make. If you have multiple vCenters then I can understand the complexity of deploying and maintaining ELM can be worth it (this is not really an issue now in 6.7u1 and embedded PSCs) otherwise its just easier all round to go without ELM and the same AD user groups are used at both sites.

 

The post-migration setup:

 

 

After all that was done, we can then move onto the hosts, but there is more than enough info out there about upgrading ESXi hosts!

 


Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.