{"id":1746,"date":"2025-12-18T17:03:39","date_gmt":"2025-12-18T23:03:39","guid":{"rendered":"https:\/\/zewwy.ca\/?p=1746"},"modified":"2026-03-02T20:39:32","modified_gmt":"2026-03-03T02:39:32","slug":"new-vcenter-same-veeam","status":"publish","type":"post","link":"https:\/\/zewwy.ca\/index.php\/2025\/12\/18\/new-vcenter-same-veeam\/","title":{"rendered":"New vCenter Same Veeam"},"content":{"rendered":"<h1 style=\"text-align: center;\"><span class=\"ez-toc-section\" id=\"The_Story\"><\/span>The Story<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2 style=\"text-align: center;\"><span class=\"ez-toc-section\" id=\"The_Niche_Situation\"><\/span>The Niche Situation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now I know the title might sounds strange, but this is to cover a niche issue which may randomly arise out in the industry. vCenter died, there was no backup, a new vCenter was spun up in its place with all the same hostname, IP address and everything, and the hosts re-added, and you happen to use Veeam as your backup solution. Now <a href=\"https:\/\/zewwy.ca\/index.php\/2023\/05\/21\/manually-fix-veeam-backup-job-after-vm-id-change\/\">I have been down this rabbit hole in the past, and I have blogged about an unsupported method to fix the Veeam jobs in the situation<\/a>. But it&#8217;s technically unsupported, so <a href=\"https:\/\/forums.veeam.com\/post548374.html#p548374\">I asked what the &#8220;supported method&#8221; would be on the Veeam forms<\/a>.<\/p>\n<p>The short answer, &#8220;<a href=\"https:\/\/helpcenter.veeam.com\/archive\/backup\/120\/vsphere\/vm_migrator_utility.html\">Oh just use the VM-Migrator tool&#8221;, as referenced here<\/a>.<\/p>\n<p>&#8220;Veeam Backup &amp; Replication tracks VMs in jobs using Managed Object Reference IDs (MORef-IDs), which change after migration or recreation of vCenter, causing MORef-ID misalignment.<\/p>\n<p>Veeam VM Migrator utility is integrated into Veeam Backup PowerShell module, and it allows you to resolve MORef-ID misalignment. As a result, your backup incremental chains will remain intact after an inventory change in vCenter.<\/p>\n<p>The utility consists of the following cmdlets:<\/p>\n<ul>\n<li class=\"List_L1\"><span class=\"T_Filenames\">Set-VBRVmBiosUuid\u00a0<\/span><span class=\"List_L1\">\u2014 this cmdlet updates the BIOS UUIDs of existing VM entries within the\u00a0<\/span><span class=\"List_L1\">Veeam\u00a0Backup\u00a0&amp;\u00a0Replication<\/span><span class=\"List_L1\">\u00a0configuration database based on information from the old vCenter.<\/span><\/li>\n<li class=\"List_L1\"><span class=\"T_Filenames\">Set-VBRVCenterName\u00a0<\/span><span class=\"List_L1\">\u2014 this cmdlet modifies vCenter name by adding the\u00a0<\/span><span class=\"T_Filenames\">_old<\/span><span class=\"List_L1\">\u00a0suffix to its name.<\/span><\/li>\n<li class=\"List_L1\"><span class=\"T_Filenames\">Generate-VBRViMigrationSpecificationFile\u00a0<\/span><span class=\"List_L1\">\u2014 this cmdlet generates a migration task file which contains the list of mapping tasks.<\/span><\/li>\n<li class=\"List_L1\"><span class=\"T_Filenames\">Start-VBRViVMMigration\u00a0<\/span><span class=\"List_L1\">\u2014 this cmdlet starts MORef-IDs update.&#8221;<\/span><\/li>\n<\/ul>\n<p>So, this tool is supposed to do what I did via the backend but this is a supported frontend tool to do it, but I case is generally different than what the tool wants in that my old and new vCenter are the same, and not simply two unique instances of vCenter with unique names both running live in parallel. Mines simply been directly rebuilt in place.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step_1_Realize_your_vCenter_is_toast\"><\/span>Step 1) Realize your vCenter is toast.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>However, you realize this, will be random and situational, in my case my trial expired, and all ESXi hosts show disconnected. I&#8217;m gonna treat this as a full loss, by simply shutting down and nuking all the VM files&#8230; it&#8217;s simply dead and gone&#8230;. and I have no configuration backup available.<\/p>\n<p>This is why this is considered a niche situation, as I&#8217;d hope that you always have a configuration backup file of your critical infrastructure server. But&#8230; what if (and here we are, in that what if, again)&#8230;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step_2_Rebuild_vCenter_with_same_name\"><\/span>Step 2)\u00a0 Rebuild vCenter with same name.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Yay, extra 20 min cause of a typo, but an interesting lesson learnt.<\/p>\n<p><a href=\"https:\/\/zewwy.ca\/index.php\/2025\/12\/18\/renaming-vcenter-sso-domain\/\">Renaming vCenter SSO Domain \u2013 Zewwy&#8217;s Info Tech Talks<\/a><\/p>\n<p>Let&#8217;s quickly rebuild our cheap cluster,\u00a0 <a href=\"https:\/\/zewwy.ca\/index.php\/2023\/05\/21\/vcls-high-cpu-usage\/#The_Fix\">configure retreat mode<\/a> and add our hosts back in&#8230;<\/p>\n<p>OK so now we&#8217;ve set our stage and we have a broken Veeam instance, if we try to scan it it will be no good cause the certificate has changed, from the center changing&#8230; so David says &#8220;So in your case, if you can restore Veeam&#8217;s configuration database to before you made these changes, instead of your step 4 there, you will begin the migration procedure and use the Set-VBRVCenterName cmdlet on the existing vCenter in Veeam, re-add your newly rebuilt vCenter to Veeam, and then perform the migration.&#8221;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step_3_run_%E2%80%9CSet-VBRvCenterName%E2%80%9D\"><\/span>Step 3) run &#8220;Set-VBRvCenterName&#8221;.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/i.imgur.com\/oJzSAlU.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/oJzSAlU.png\" alt=\"\" width=\"522\" height=\"135\" \/><\/a><\/p>\n<p>So far, so good.. now..<\/p>\n<p><a href=\"https:\/\/i.imgur.com\/phQPgQe.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/phQPgQe.png\" alt=\"\" width=\"276\" height=\"415\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step_4_Add_new_vCenter_to_Veeam\"><\/span>Step 4) Add new vCenter to Veeam.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/i.imgur.com\/NDbSazk.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/NDbSazk.png\" alt=\"\" width=\"941\" height=\"548\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step_5_Generate_Migration_File\"><\/span>Step 5) Generate Migration File.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now I&#8217;m back to assuming, cause instructions are unclear in <a href=\"https:\/\/helpcenter.veeam.com\/archive\/backup\/120\/vsphere\/vm_migrator_utility.html\">Veeams provided guidance<\/a>. I&#8217;m assuming I have to run the generate command before I run the start migration command&#8230;.<\/p>\n<p><a href=\"https:\/\/i.imgur.com\/QpFUgyF.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/QpFUgyF.png\" alt=\"\" width=\"969\" height=\"245\" \/><\/a><\/p>\n<p>Checking out the generated file, its a plain text file with a really weird syntax choice, but the VM-IDs are clearly as I was doing manually in my old blog post.<\/p>\n<p><a href=\"https:\/\/i.imgur.com\/303Ak2c.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/303Ak2c.png\" alt=\"\" width=\"779\" height=\"103\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step_6_Start_the_Migration\"><\/span>Step 6) Start the Migration.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/i.imgur.com\/ZkvawJH.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/ZkvawJH.png\" alt=\"\" width=\"941\" height=\"194\" \/><\/a><\/p>\n<p>I have no clue what that warning is about&#8230; I mean the new vCenter was added to Veeam, the VM IDs matched what I see in the URL when navigating them, like my old blog&#8230; I guess I&#8217;ll just check on VBR console&#8230;<\/p>\n<p>I did a recalculate on the VM inside the backup job and it calculated, so looks like it worked. Let&#8217;s run a backup job and check the chain as well&#8230;<\/p>\n<p>The Job ran just fine&#8230;\u00a0 and the chains still intact. Looks like it worked, this was the supported way, and it did feel easier, especially if scaled out to hundreds of VMs.<\/p>\n<p>Hope this helps someone.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Story The Niche Situation Now I know the title might sounds strange, but this is to cover a niche issue which may randomly arise out in the industry. vCenter died, there was no backup, a new vCenter was spun up in its place with all the same hostname, IP address and everything, and the &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/zewwy.ca\/index.php\/2025\/12\/18\/new-vcenter-same-veeam\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;New vCenter Same Veeam&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","footnotes":""},"categories":[5,8,236],"tags":[488],"class_list":["post-1746","post","type-post","status-publish","format-standard","hentry","category-hypervisors","category-server-administration","category-veeam","tag-vm-migrator"],"_links":{"self":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/comments?post=1746"}],"version-history":[{"count":5,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1746\/revisions"}],"predecessor-version":[{"id":1805,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1746\/revisions\/1805"}],"wp:attachment":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/media?parent=1746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/categories?post=1746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/tags?post=1746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}