{"id":1859,"date":"2026-09-21T17:20:18","date_gmt":"2026-09-21T22:20:18","guid":{"rendered":"https:\/\/zewwy.ca\/?p=1859"},"modified":"2026-10-03T22:40:13","modified_gmt":"2026-10-04T03:40:13","slug":"proxmox-cluster-findings","status":"publish","type":"post","link":"https:\/\/zewwy.ca\/index.php\/2026\/09\/21\/proxmox-cluster-findings\/","title":{"rendered":"Proxmox Cluster Findings"},"content":{"rendered":"<h1 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=QB9UIf_t\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"Proxmox_Cluster_Findings\"><\/span>Proxmox Cluster Findings<!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIChAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">When I set up my new MSI PVE host, I decided to use the &#8220;Golden Blueprint&#8221; for storage: installing the base Proxmox OS on a cheap SATA SSD to shield it from heavy log writes, leaving my lightning-fast NVMe drive completely clean and unpartitioned as a dedicated LVM-Thin block storage pool for my VMs and containers.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEICxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">But things got complicated when I tried to link my new host to my old host. Here is what I learned while wrestling with Proxmox cluster logic, VMware design differences, and hardcoded network traps.<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><!--TgQPHd|||[]--><\/div>\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=QB9UIf_x\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"1_The_Populated_Host_Conundrum\"><\/span>1. The Populated Host Conundrum<!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">My initial plan was straightforward: create a fresh cluster on my pristine new host, and then have my old host (which currently runs all my active workloads) join it. I quickly hit a hard wall. Unlike VMware vCenter\u2014which effortlessly imports populated ESXi hosts and reindexes VM identifiers on the fly\u2014Proxmox operates on a decentralized, shared-filesystem architecture (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">pmxcfs<!--TgQPHd|||[]--><\/code>).<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Because Proxmox uses hardcoded VMIDs (like <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">100<!--TgQPHd|||[]--><\/code>, <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">101<!--TgQPHd|||[]--><\/code>) to define physical storage paths and configuration maps, a host cannot join an existing cluster if it has any virtual machines on it. Joining a cluster completely overwrites the local <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\/etc\/pve<!--TgQPHd|||[]--><\/code> directory, which would instantly orphan any existing virtual disks.<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">The Fix:<!--TgQPHd|||[]--><\/strong> I flipped the workflow. I created the cluster directly on my <em class=\"zhvwWe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">old<!--TgQPHd|||[]--><\/em> host first. Because it initialized the cluster, its existing VMs remained perfectly safe.<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><!--TgQPHd|||[]--><\/div>\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=QB9UIf_18\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"2_Leaving_a_Cluster_Requires_the_CLI\"><\/span>2. Leaving a Cluster Requires the CLI<!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIERAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Before I figured out the correct order of operations, I had already initialized a test cluster on my new node. When I went to undo it, I discovered there is no &#8220;Delete Cluster&#8221; button in the Proxmox Web GUI. Because tearing down a cluster can cause severe data corruption if done incorrectly, Proxmox forces you into the shell.<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIERAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">To completely reset my new node back to standalone mode without reinstalling the entire OS, I had to open the terminal and force-clear the configuration database using these steps:<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"r1PmQe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"QB9UIf_1e,QB9UIf_1d\" data-hveid=\"CAEIExAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div class=\"pHpOfb\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\n<div class=\"z0e9Qd\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div class=\"vVRw1d\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<\/div>\n<div class=\"pCTyYe\" dir=\"ltr\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<pre data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><code data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ClTQqc\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(154, 160, 166);\"># Stop cluster synchronization services<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\r\nsystemctl stop pve-cluster\r\nsystemctl stop corosync\r\n\r\n<\/span><span class=\"ClTQqc\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(154, 160, 166);\"># Force the configuration filesystem into a temporary local mode<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\r\npmxcfs -l\r\n\r\n<\/span><span class=\"ClTQqc\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(154, 160, 166);\"># Permanently erase the old cluster registries<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\r\nrm -f \/etc\/pve\/corosync.conf\r\nrm -rf \/etc\/corosync\/*\r\n\r\n<\/span><span class=\"ClTQqc\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(154, 160, 166);\"># Kill the background lock process and restart standalone services<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\r\nkillall pmxcfs\r\nsystemctl start pve-cluster\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"LIBz9e\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=QB9UIf_18\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"3_The_Hardcoded_IPVLAN_Trap\"><\/span>3. The Hardcoded IP\/VLAN Trap<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIFRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">While running <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">pmxcfs -l<!--TgQPHd|||[]--><\/code>, I noticed the terminal spat out an old IP address (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">192.168.0.68<!--TgQPHd|||[]--><\/code>) that I had previously removed when migrating the host to a new VLAN-tagged management network.<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIFRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIFhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I realized that Proxmox doesn&#8217;t query active network interfaces to resolve its own name; it relies entirely on a static registry. The old IP address was still hardcoded inside my <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\/etc\/hosts<!--TgQPHd|||[]--><\/code> file. I used <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">nano \/etc\/hosts<!--TgQPHd|||[]--><\/code> to update the line to my new VLAN IP (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">172.16.21.20<!--TgQPHd|||[]--><\/code>) so the host could resolve itself properly. (Blog post covering IP change updated)<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><!--TgQPHd|||[]--><\/div>\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=QB9UIf_1t\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"4_Breaking_the_Handshake_Hang\"><\/span>4. Breaking the Handshake Hang<!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">When I finally went to join my clean new node (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">172.16.21.20<!--TgQPHd|||[]--><\/code>) to the old node&#8217;s cluster (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">172.16.21.60<!--TgQPHd|||[]--><\/code>), the Web GUI installer completely hung on the message: <em class=\"zhvwWe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\u201cRequest addition of this node.\u201d<!--TgQPHd|||[]--><\/em><!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGhAA\" data-complete=\"true\" data-processed=\"true\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">However, in classic homelab fashion, a simple web browser refresh cleared the stalled API cache, the handshake successfully completed on its own, and both nodes cleanly populated into a single sidebar.<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGhAA\" data-complete=\"true\" data-processed=\"true\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGhAA\" data-complete=\"true\" data-processed=\"true\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=FqKB5c_y\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"5_Local_Disks_Show_Up_on_the_Wrong_Nodes\"><\/span>5. Local Disks Show Up on the Wrong Nodes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIChAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Right after my two nodes successfully clustered, I noticed something deeply alarming in the sidebar UI: my old host\u2019s massive local storage drive (<strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">mass-storage<\/code><\/strong>) was suddenly showing up underneath my shiny new <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">msi-pve<\/code><\/strong> node.<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIChAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAICxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I knew for a fact it wasn\u2019t shared storage\u2014there were no NFS, SMB, or iSCSI links connecting them. The drive was physically plugged into the old hardware. So why was my new host pretending it owned it?<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAICxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=FqKB5c_1g\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">The Cause: Global Cluster Definitions<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">This is one of Proxmox\u2019s quirky design traits. Proxmox stores every single storage path inside a single, cluster-wide configuration file (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\/etc\/pve\/storage.cfg<\/code>). The moment my new node joined the cluster, it downloaded this file and blindly copied the layout.<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDhAA\" data-processed=\"true\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">By default, Proxmox assumes any storage listed in that file is accessible by <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">all nodes<\/strong> unless you explicitly state otherwise. It draws the icon under every host in the sidebar, creating a dangerous phantom placeholder. If I had tried to spin up a VM on my new node and targeted that ghost storage, the deployment would have crashed instantly with activation errors.<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDhAA\" data-processed=\"true\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=FqKB5c_1w\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Luckily the fix, correcting this is incredibly simple and doesn&#8217;t require the command line:<\/div>\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<li style=\"list-style-type: none;\">\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAB\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I clicked on <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Datacenter<\/strong> at the very top of the sidebar.<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAC\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I went to <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Storage<\/strong>, highlighted the phantom <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">mass-storage <\/code><\/strong><\/span>pool, and clicked <strong class=\"rQesXe MPyX\" style=\"font-size: 1rem;\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Edit<\/strong><span style=\"font-size: 1rem;\">.<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAD\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I found the <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Nodes<\/strong> dropdown\u2014which was completely blank (Proxmox-speak for &#8220;Allow All Nodes&#8221;).<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAE\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I changed it to explicitly select <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">only my old host (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">g9-pve<\/code>)<\/strong> and saved it.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">The second I clicked OK, the phantom icon vanished from underneath my new node, keeping my environment clean and preventing any catastrophic accidental deployments.<\/div>\n<\/div>\n<h2 style=\"text-align: center;\" data-sfc-root=\"ep\" data-hveid=\"CAAIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"6_Migration_Failure_due_to_VMs_bound_virtual_NIC\"><\/span>6. Migration Failure due to VMs bound virtual NIC<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Coming from VMware, hitting a hard wall during a migration because of a network name mismatch feels entirely unnecessary. In VMware\u2014even on standard vSwitches without distributed virtual switching\u2014the <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">migration wizard natively handles network remapping<\/strong>. If a target host doesn&#8217;t have a matching network, the wizard stops and lets you choose a new path on the fly.<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIExAA\" data-processed=\"true\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">This highlights a fundamental architectural difference in how these two hypervisors handle networking:<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIExAA\" data-processed=\"true\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwie0ZDC6ICXAxX8z_ACHfcFC24Q-7AUegYIAAgUEAA\" data-hveid=\"CAAIFBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFBAB\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">VMware uses Port Groups (VMPGs):<\/strong> This creates a layer of abstraction. The VM connects to a named Port Group, and that group handles the VLAN tagging down at the vSwitch level.<\/span><\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFBAE\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Proxmox uses Direct Bridging:<\/strong> By default, Proxmox expects you to point the VM&#8217;s virtual NIC directly at a specific host bridge (like <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">vmbr1<\/code>) and explicitly type the <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">VLAN tag directly into the VM&#8217;s network device settings<\/strong>.<\/span><\/li>\n<\/ul>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Because Proxmox binds the VM directly to a specific host bridge string rather than an abstract port group, its migration wizard is completely rigid. If the destination host doesn&#8217;t have an identically named bridge, the migration fails with an error instead of letting you remap it during the transfer. To make migrations seamless, you have no choice but to ensure your Linux bridge names match exactly across every single node in your cluster.<\/div>\n<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<h2 style=\"text-align: center;\" data-sfc-root=\"ep\" data-hveid=\"CAAIFRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"7_Migrating_an_LXC\"><\/span>7. Migrating an LXC<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">With a container healthy, I attempted to clone it over to the new host&#8217;s NVMe drive. The Proxmox UI threw a sudden error:<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><br data-sfc-root=\"ep\" data-sfc-pl=\"|||[]\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\" \/><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">Full clone of a running container is only possible from a snapshot (500)<!--TgQPHd|||[]--><\/code><!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Because containers share live kernel space, they cannot be live-cloned without a frozen snapshot boundary. I attempted to take a snapshot, only to hit a secondary brick wall:<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><br data-sfc-root=\"ep\" data-sfc-pl=\"|||[]\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\" \/><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">The current guest configuration does not support taking new snapshots<!--TgQPHd|||[]--><\/code><!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIIxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">This error points directly to the underlying physical storage. While advanced file systems like ZFS and LVM-Thin support snapshots out of the box, traditional file-based directory storages and thick LVM volume groups do not. I couldn&#8217;t take a snapshot, which meant I couldn&#8217;t live-clone. A cold migration was my only path forward, or so I thought&#8230;<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><!--TgQPHd|||[]--><\/div>\n<h3 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=H18rMd_34\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"Overriding_the_Migration_Wizard_with_Manual_Backup_Streams\"><\/span>Overriding the Migration Wizard with Manual Backup Streams<!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIJhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">I shut the container down and clicked Migrate, but Proxmox aborted yet again:<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIJhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><br data-sfc-root=\"ep\" data-sfc-pl=\"|||[]\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\" \/><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">ERROR: migration aborted: storage 'Mass-Storage' is not available on node 'msi-pve'<!--TgQPHd|||[]--><\/code><!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIJhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIJxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">When dealing with local storage migration, the standard Proxmox wizard stubbornly expects the exact same storage pool name to exist on the target host. Because my old host&#8217;s 4TB drive was named <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">Mass-Storage<!--TgQPHd|||[]--><\/code>, and my new host only possessed an unmapped LVM-Thin layout, the handshake failed.<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIJxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIKBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">To bypass the rigid migration UI entirely, I resorted to a manual <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Secure Copy (SCP) backup stream<!--TgQPHd|||[]--><\/strong>. <!--TgQPHd|||[]-->First, I shut down the source container on <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">g9-pve<!--TgQPHd|||[]--><\/code> and took a standard uncompressed cold backup file to my local directory. Then, because LVM block devices don&#8217;t show up via standard <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">df -h<!--TgQPHd|||[]--><\/code> folders, I targeted Proxmox&#8217;s universal root backup directory (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\/var\/lib\/vz\/dump\/<!--TgQPHd|||[]--><\/code>) and pushed the data over the network via SCP:<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"r1PmQe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"H18rMd_3j,H18rMd_3i\" data-hveid=\"CAAIKhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div class=\"pHpOfb\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\n<div class=\"z0e9Qd\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div class=\"vVRw1d\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">bash<\/div>\n<\/div>\n<div class=\"pCTyYe\" dir=\"ltr\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<pre data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><code data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">scp \/mnt\/pve\/mass-storage\/dump\/vzdump-lxc-<\/span><span class=\"tnfcCf\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(250, 144, 62);\">105<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">-<\/span><span class=\"tnfcCf\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(250, 144, 62);\">2026<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">_09_21-<\/span><span class=\"tnfcCf\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(250, 144, 62);\">19<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">_57_35.tar.zst root@172.16.21.20:\/var\/lib\/vz\/dump\/\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"LIBz9e\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\n<h3 style=\"text-align: center;\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwjMqpSXg4GXAxWlk4kEHes4MwEQh9gSegYIAAgqEAI\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><span class=\"ez-toc-section\" id=\"The_Final_Handshake\"><\/span><span style=\"font-size: 1rem;\">The Final Handshake<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAILBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Once the transfer finished, the backup file appeared beautifully under the new host&#8217;s <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">local<!--TgQPHd|||[]--><\/code> storage tab in the Web UI. I hit <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">Restore<!--TgQPHd|||[]--><\/strong>, pointed the destination target directly into the brand-new 1TB NVMe LVM-Thin pool, and let it extract.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAILRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">To guarantee no IP collisions occurred on my network while validating the data, I went into the original source container on <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">g9-pve<!--TgQPHd|||[]--><\/code> and checked the <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">&#8220;Disconnected&#8221;<!--TgQPHd|||[]--><\/strong> flag on its network interface. With the original container safely blinded, I fired up the newly restored container on <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">msi-pve<!--TgQPHd|||[]--><\/code>. I adjusted its hardware bridge settings from <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">vmbr1<!--TgQPHd|||[]--><\/code> to the new host&#8217;s active <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">vmbr0<!--TgQPHd|||[]--><\/code> bridge, and the pings immediately started flowing.<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAILRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\"><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAILhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<p>The service came up perfectly healthy, allowing me to finally go back and permanently shut down the original source container on the old hardware.<\/p>\n<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAB\" data-complete=\"true\" data-processed=\"true\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(232, 234, 242);\">\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=slcT8b_y\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><span class=\"ez-toc-section\" id=\"8_Proxmox_%E2%80%9CCluster_Join_Aborted_%E2%80%93_No_Quorum%E2%80%9D_Errors\"><\/span>8. Proxmox &#8220;Cluster Join Aborted &#8211; No Quorum&#8221; Errors<!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAICRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">When adding a new node to an existing Proxmox VE cluster, you might encounter this frustrating terminal error:<br data-sfc-root=\"ep\" data-sfc-pl=\"|||[]\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\" \/><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">An error occurred on the cluster node: cluster not ready - no quorum? TASK ERROR: Cluster join aborted!<!--TgQPHd|||[]--><\/code><!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIChAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<p>Here is exactly why this happens and how to bypass it safely.<\/p>\n<p><!--TgQPHd|||[]--><\/p>\n<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=slcT8b_1e\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\ud83d\udd0d The Root Cause<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Proxmox requires a <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">strict majority (&gt;50%) of voting nodes<!--TgQPHd|||[]--><\/strong> to be online and communicating via Corosync to allow administrative changes.<!--TgQPHd|||[]--><\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwjI-7-TvpWXAxWHCnkGHT4nIEcQ-7AUegYIAAgNEAA\" data-hveid=\"CAAIDRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<li style=\"list-style-type: none;\">\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwjI-7-TvpWXAxWHCnkGHT4nIEcQ-7AUegYIAAgNEAA\" data-hveid=\"CAAIDRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDRAB\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">If a node in your existing cluster is offline, powered down, or network-isolated, the remaining online nodes lose <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">quorum<!--TgQPHd|||[]--><\/strong>.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDRAC\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">To prevent accidental data corruption, Proxmox drops into a protective, read-only state and blocks any new nodes from joining.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!--TgQPHd|||[]--><\/p>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=slcT8b_1y\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\ud83d\udee0\ufe0f The Fix: Bypassing Quorum<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">If you cannot easily boot the offline node back up, you can manually force the surviving node to lower its expected vote count.<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=slcT8b_26\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Step 1: Force Expected Votes<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">SSH into your active cluster node and run the following command to temporarily lower the expected vote threshold to <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">1<!--TgQPHd|||[]--><\/code>:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"slcT8b_2h,slcT8b_2g\" data-hveid=\"CAAIEhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<div data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\n<div class=\"PGvq2d\" dir=\"ltr\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<pre data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><code data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">pvecm expected <\/span><span class=\"N1kUHb\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(250, 144, 62);\">1<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"iMHp6c\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwjI-7-TvpWXAxWHCnkGHT4nIEcQh9gSegYIAAgSEAI\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><em class=\"zhvwWe\" style=\"font-size: 1rem;\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">This instantly restores cluster write-privileges to the remaining online node.<\/em><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=slcT8b_2u\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Step 2: Join the New Node<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Return to your new node (via CLI or the Web GUI) and re-run the cluster join process. The join operation will now succeed.<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=slcT8b_32\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Step 3: Boot the Offline Node<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Once the new node has safely integrated into the cluster, power your original offline node back on. It will automatically check in with the rest of the network, detect the new node, and sync the updated cluster configuration seamlessly.<!--TgQPHd|||[]--><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=slcT8b_3a\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\u26a0\ufe0f Important Safety Checklist<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIGRAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Before running <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(44, 46, 53);\">pvecm expected 1<!--TgQPHd|||[]--><\/code>, always verify your storage layout:<!--TgQPHd|||[]--><\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwjI-7-TvpWXAxWHCnkGHT4nIEcQ-7AUegYIAAgaEAA\" data-hveid=\"CAAIGhAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIGhAB\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Shared Storage (Ceph, NFS, iSCSI):<!--TgQPHd|||[]--><\/strong> Ensure the offline node is completely powered off. If it boots up isolated, it could cause a &#8220;split-brain&#8221; scenario and corrupt shared virtual disks.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIGhAE\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" aria-owns=\"action-menu-parent-container\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">Local Storage Only:<!--TgQPHd|||[]--><\/strong> If your cluster strictly uses local disks, the risk is <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: &quot;Google Sans&quot;, Arial, sans-serif, &quot;Noto Color Emoji&quot;; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(230, 232, 240);\">near zero<!--TgQPHd|||[]--><\/strong>. The offline node cannot physically touch or corrupt data on the other hosts.<\/span><\/li>\n<\/ul>\n<p>If you do Bring back your old host and didn&#8217;t remove it from the cluster, it may not be happy with you and remain in its own island cluster and not play nice with your old hosts&#8230;<\/p>\n<h2 class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=IzbNdd_p\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\"><span class=\"ez-toc-section\" id=\"9_Proxmox_Cluster_Split-Brain_and_Corosync_Version_Mismatch\"><\/span><span data-subtree=\"aimfl\">9. Proxmox Cluster Split-Brain and Corosync Version Mismatch<\/span><!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIBxAA\" data-complete=\"true\" data-processed=\"true\">When a Proxmox VE node is taken offline and changes are made to the remaining cluster (such as adding a new host), bringing that offline node back online can trigger a silent cluster failure. The node will refuse to rejoin, and the Proxmox Web UI will show the hosts as completely disconnected from one another.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEICBAA\" data-complete=\"true\" data-processed=\"true\">\n<p>Here is a breakdown of why this happens and how to safely force the node back into the cluster.<\/p>\n<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IzbNdd_16\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">The Problem: The &#8220;Chicken and Egg&#8221; Loop<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEICxAA\" data-complete=\"true\" data-processed=\"true\">Proxmox relies on two core components to maintain a cluster:<!--TgQPHd|||[]--><\/div>\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\">\n<li style=\"list-style-type: none;\">\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDBAB\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">Corosync:<!--TgQPHd|||[]--><\/strong> The underlying network messaging engine that handles cluster quorum and node handshakes.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDBAC\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">pmxcfs<!--TgQPHd|||[]--><\/code> (Proxmox Cluster File System):<!--TgQPHd|||[]--><\/strong> The distributed filesystem that mirrors configuration files (like <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">\/etc\/pve\/corosync.conf<!--TgQPHd|||[]--><\/code>) across all nodes.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><!--TgQPHd|||[]--><\/p>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDRAA\" data-complete=\"true\" data-processed=\"true\">This creates a dependency loop: <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\"><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">pmxcfs<!--TgQPHd|||[]--><\/code> needs Corosync to sync files across the network, but Corosync needs to read <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">pmxcfs<!--TgQPHd|||[]--><\/code> to get its startup configuration.<!--TgQPHd|||[]--><\/strong><!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDhAA\" data-processed=\"true\" data-complete=\"true\">If a node is offline when the active cluster undergoes an update, the cluster increments its configuration version (e.g., from <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">config_version: 2<!--TgQPHd|||[]--><\/code> to <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">3<!--TgQPHd|||[]--><\/code>). When the offline node boots back up, a security mechanism triggers:<!--TgQPHd|||[]--><\/div>\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\">\n<li style=\"list-style-type: none;\">\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDxAB\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">Corosync reads its local file and sees <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">Version 2<!--TgQPHd|||[]--><\/strong>.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDxAC\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">It reaches across the network and hears <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">Version 3<!--TgQPHd|||[]--><\/strong> from the active cluster.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIDxAD\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">To prevent a &#8220;split-brain&#8221; scenario (where two isolated parts of a cluster might blindly overwrite each other&#8217;s storage configs), Corosync panics and immediately exits with the error:<br data-sfc-root=\"ep\" data-sfc-pl=\"|||[]\" data-complete=\"true\" \/><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">[CMAP] Received config version (3) is different than my config version (2)! Exiting<!--TgQPHd|||[]--><\/code><!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><!--TgQPHd|||[]--><\/p>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIEBAA\" data-complete=\"true\" data-processed=\"true\">\n<p>Because Corosync crashes, the network pipe never initializes. Because the pipe never initializes, the node can never automatically download the updated file from the healthy cluster.<\/p>\n<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IzbNdd_2x\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">The Fix: Trick Corosync to Open the Pipe<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIExAA\" data-complete=\"true\" data-processed=\"true\">To resolve this, you must force the local node&#8217;s configuration filesystem into read\/write mode, manually spoof the configuration version number to match the cluster, and restart the services.<!--TgQPHd|||[]--><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"AdPoic\" role=\"heading\" aria-level=\"4\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IzbNdd_35\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">Step 1: Kill Zombie Processes &amp; Force Local Mode<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIFRAA\" data-complete=\"true\" data-processed=\"true\">Because the cluster is offline, Proxmox locks <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">\/etc\/pve<!--TgQPHd|||[]--><\/code> into a read-only state. Clear out any stuck systemd loops and force it to run locally:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"IzbNdd_3l,IzbNdd_3k\" data-hveid=\"CAEIFhAA\" data-complete=\"true\" data-processed=\"true\">\n<div data-processed=\"true\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\">\n<div class=\"PGvq2d\" dir=\"ltr\">\n<pre><code><span class=\"ojrtQ\"># Kill any hung cluster processes holding filesystem locks<\/span><span class=\"undefined\">\r\nkillall -<\/span><span class=\"N1kUHb\">9<\/span><span class=\"undefined\"> pmxcfs corosync pve-cluster\r\n\r\n<\/span><span class=\"ojrtQ\"># Stop the systemd tracking services<\/span><span class=\"undefined\">\r\nsystemctl stop pve-cluster corosync\r\n\r\n<\/span><span class=\"ojrtQ\"># Force the cluster filesystem to run in independent local mode<\/span><span class=\"undefined\">\r\npmxcfs -l\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"iMHp6c\" data-animation-atomic=\"\" data-sae=\"\">\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwiA7ZSAl5-XAxW4v4kEHYKCEzQQh9gSegYIAQgWEAI\" data-complete=\"true\"><span style=\"font-size: 1rem;\">Step 2: Manually Update the Config Version<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGBAA\" data-complete=\"true\" data-processed=\"true\">With the filesystem unlocked, edit the configuration file to match the version expected by the active cluster:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"IzbNdd_46,IzbNdd_45\" data-hveid=\"CAEIGRAA\" data-complete=\"true\" data-processed=\"true\">\n<div data-processed=\"true\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\">\n<div class=\"PGvq2d\" dir=\"ltr\">\n<pre><code><span class=\"undefined\">nano \/etc\/pve\/corosync.conf<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwiA7ZSAl5-XAxW4v4kEHYKCEzQQ-7AUegYIAQgaEAA\" data-hveid=\"CAEIGhAA\" data-processed=\"true\" data-complete=\"true\">\n<li style=\"list-style-type: none;\">\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwiA7ZSAl5-XAxW4v4kEHYKCEzQQ-7AUegYIAQgaEAA\" data-hveid=\"CAEIGhAA\" data-processed=\"true\" data-complete=\"true\">\n<li data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGhAC\" data-complete=\"true\" data-sae=\"\">locate the config_version: line in the file.<\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGhAC\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">Change the number to match the cluster&#8217;s current version (e.g., change <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">2<!--TgQPHd|||[]--><\/code> to <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">3<!--TgQPHd|||[]--><\/code>).<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIGhAD\" data-sae=\"\" data-complete=\"true\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">Save and exit (<code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">Ctrl+O<!--TgQPHd|||[]--><\/code>, <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">Enter<!--TgQPHd|||[]--><\/code>, <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">Ctrl+X<!--TgQPHd|||[]--><\/code>).<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!--TgQPHd|||[]--><\/p>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"AdPoic\" role=\"heading\" aria-level=\"4\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IzbNdd_4v\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">Step 3: Restart Services<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIHBAA\" data-complete=\"true\" data-processed=\"true\">Now that the version numbers match on paper, kill your manual filesystem override and let systemd start the cluster services normally:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"IzbNdd_5a,IzbNdd_59\" data-hveid=\"CAEIHRAA\" data-complete=\"true\" data-processed=\"true\">\n<div data-processed=\"true\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\">\n<div class=\"PGvq2d\" dir=\"ltr\">\n<pre><code><span class=\"ojrtQ\"># Clear the manual local mode instance<\/span><span class=\"undefined\">\r\nkillall -<\/span><span class=\"N1kUHb\">9<\/span><span class=\"undefined\"> pmxcfs\r\n\r\n<\/span><span class=\"ojrtQ\"># Start the cluster services sequentially<\/span><span class=\"undefined\">\r\nsystemctl start pve-cluster\r\nsystemctl start corosync\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"iMHp6c\" data-animation-atomic=\"\" data-sae=\"\">\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwiA7ZSAl5-XAxW4v4kEHYKCEzQQh9gSegYIAQgdEAI\" data-complete=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IzbNdd_5i\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">The Result: The True Config Wins<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIIBAA\" data-complete=\"true\" data-processed=\"true\">By manually matching the version numbers, Corosync is tricked into thinking the nodes are synchronized, allowing it to safely open the network tunnel.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIIRAA\" data-complete=\"true\" data-processed=\"true\">The moment the connection stabilizes, Proxmox&#8217;s internal generation rules take over. It recognizes that the active cluster holds the true, updated configuration file. The cluster immediately pushes the complete configuration down to the returning node, gracefully overwriting your temporary edit and cleanly reintegrating the host.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAEIIhAA\" data-complete=\"true\" data-processed=\"true\">You can verify the fix directly from the CLI:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"IzbNdd_64,IzbNdd_63\" data-hveid=\"CAEIIxAA\" data-complete=\"true\" data-processed=\"true\">\n<div data-processed=\"true\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\">\n<div class=\"PGvq2d\" dir=\"ltr\">\n<pre><code><span class=\"undefined\" aria-owns=\"action-menu-parent-container\">pvecm status<\/span><\/code><\/pre>\n<p>If the above didn&#8217;t work cause your host was offline when you brought this one back online, and that host already has the same version number, but get connection issues in the GUI check out the next section.<\/p>\n<h2 class=\"otQkpb\" style=\"text-align: center;\" role=\"heading\" aria-level=\"3\" data-wiz-attrbind=\"aria-level=YSEgIc_p\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\"><span class=\"ez-toc-section\" id=\"10_Wiping_Stale_State_and_Bypassing_SSL_Mismatches\"><\/span><span data-subtree=\"aimfl\">10. Wiping Stale State and Bypassing SSL Mismatches<\/span><!--TgQPHd|||[]--><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAICBAA\" data-complete=\"true\" data-processed=\"true\">When a Proxmox VE cluster shifts structurally while a specific node is offline (such as adding new nodes or changing quorum dynamics), that offline node can fall too far out of sync. Even if configuration version numbers match, the node may completely fail to authenticate with the live cluster due to outdated cryptographic tokens or security states.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAICRAA\" data-processed=\"true\" data-complete=\"true\">Here is how to safely wipe a node\u2019s stale cluster data, preserve existing virtual machines, and force-join it back into production using an SSH fallback.<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAICRAA\" data-processed=\"true\" data-complete=\"true\"><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=YSEgIc_16\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">The Problem: Authentication Locks &amp; The SSL 500 Error<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDBAA\" data-complete=\"true\" data-processed=\"true\">When a node falls severely behind the cluster&#8217;s state, trying to rejoin it often leads to a dead end. To fix this, you must first reset the node back into a standalone host by purging its old configuration database files:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"YSEgIc_1g,YSEgIc_1f\" data-hveid=\"CAAIDRAA\" data-complete=\"true\" data-processed=\"true\">\n<div data-processed=\"true\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\">\n<div class=\"PGvq2d\" dir=\"ltr\">\n<pre><code><span class=\"ojrtQ\"># Stop the stuck cluster loops<\/span><span class=\"undefined\">\r\nsystemctl stop pve-cluster corosync\r\nkillall -<\/span><span class=\"N1kUHb\">9<\/span><span class=\"undefined\"> pmxcfs corosync\r\n\r\n<\/span><span class=\"ojrtQ\"># Force the configuration filesystem to open up locally<\/span><span class=\"undefined\">\r\npmxcfs -l\r\n\r\n<\/span><span class=\"ojrtQ\"># Purge the outdated corosync database files entirely<\/span><span class=\"undefined\">\r\nrm \/etc\/pve\/corosync.conf\r\nrm -rf \/etc\/corosync\/*\r\nrm -rf \/var\/lib\/corosync\/*\r\n\r\n<\/span><span class=\"ojrtQ\"># Restart the local filesystem daemon as a clean standalone service<\/span><span class=\"undefined\">\r\nkillall -<\/span><span class=\"N1kUHb\">9<\/span><span class=\"undefined\"> pmxcfs\r\nsystemctl start pve-cluster\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"iMHp6c\" data-animation-atomic=\"\" data-sae=\"\">\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwi2nuy_tJ-XAxXQnokEHQ-yCfUQh9gSegYIAAgNEAI\" data-complete=\"true\"><a href=\"https:\/\/i.imgur.com\/4wPKpM3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/4wPKpM3.png\" alt=\"\" width=\"888\" height=\"268\" \/><\/a><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwi2nuy_tJ-XAxXQnokEHQ-yCfUQh9gSegYIAAgNEAI\" data-complete=\"true\"><\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwi2nuy_tJ-XAxXQnokEHQ-yCfUQh9gSegYIAAgNEAI\" data-complete=\"true\"><span style=\"font-size: 1rem;\">Once the node is wiped and returned to a standalone state, running a standard <\/span><code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">pvecm add [CLUSTER_IP]<\/code><span style=\"font-size: 1rem;\"> often triggers two scary security blocks:<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<ol class=\"T9WCjf qkgVBf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-processed=\"true\" data-complete=\"true\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDxAB\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">The Guest Warning:<!--TgQPHd|||[]--><\/strong> <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">* this host already contains virtual guests<!--TgQPHd|||[]--><\/code>.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDxAC\" data-sae=\"\" data-complete=\"true\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">The SSL Failure:<!--TgQPHd|||[]--><\/strong> <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\">500 Can't connect to [IP]:8006 (hostname verification failed)<!--TgQPHd|||[]--><\/code>.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<p><!--TgQPHd|||[]--><\/ol>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"AdPoic\" role=\"heading\" aria-level=\"4\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=YSEgIc_27\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">Understanding the SSL 500 Error<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAA\" data-processed=\"true\" data-complete=\"true\">By default, Proxmox attempts to execute cluster joins using its secure HTTPS API on port <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">8006<!--TgQPHd|||[]--><\/code>. The target node serves an SSL certificate that matches its actual <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\">hostname<!--TgQPHd|||[]--><\/strong> (e.g., <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">g9-pve<!--TgQPHd|||[]--><\/code>), but the joining node is hitting it via a raw <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\">IP address<!--TgQPHd|||[]--><\/strong>. Because the IP address does not match the name listed on the security certificate, the API strictly rejects the connection and throws the <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">500<!--TgQPHd|||[]--><\/code> error.<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIERAA\" data-processed=\"true\" data-complete=\"true\"><\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=YSEgIc_2r\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">The Solution: Forcing and Bypassing via SSH<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFBAA\" data-complete=\"true\" data-processed=\"true\">To safely resolve both issues, use the following advanced join command:<\/div>\n<div class=\"BpxUDf aiModeUiCodeBlock__Container\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-wiz-uids=\"YSEgIc_31,YSEgIc_30\" data-hveid=\"CAAIFRAA\" data-complete=\"true\" data-processed=\"true\">\n<div data-processed=\"true\">\n<div class=\"rq1a2\" data-animation-atomic=\"\" data-sae=\"\">\n<div class=\"a2TNg\">\n<div tabindex=\"0\" data-os-fs=\"\" aria-hidden=\"true\"><\/div>\n<\/div>\n<div class=\"PGvq2d\" dir=\"ltr\">\n<pre><code><span class=\"undefined\">pvecm add [IP of neigbouring host]<\/span><span class=\"undefined\"> --force --use_ssh\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"iMHp6c\" data-animation-atomic=\"\" data-sae=\"\">\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwi2nuy_tJ-XAxXQnokEHQ-yCfUQh9gSegYIAAgVEAI\" data-complete=\"true\"><span style=\"font-size: 1rem;\">Why This Works:<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwi2nuy_tJ-XAxXQnokEHQ-yCfUQ-7AUegYIAAgXEAA\" data-hveid=\"CAAIFxAA\" data-complete=\"true\" data-processed=\"true\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAB\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">The <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">--force<!--TgQPHd|||[]--><\/code> Flag:<!--TgQPHd|||[]--><\/strong> This tells Proxmox to intentionally ignore the virtual guest warning. Your VM&#8217;s raw virtual disks sitting on local storage are <strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">100% safe<!--TgQPHd|||[]--><\/strong> and are never modified or deleted. The flag simply allows Proxmox to safely merge the node&#8217;s local configuration directory into the cluster&#8217;s unified database.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAE\" data-complete=\"true\" data-sae=\"\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\"><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\">The <code class=\"KDcb0c\" dir=\"ltr\" data-sfc-root=\"ep\" data-complete=\"true\" data-sae=\"\">--use_ssh<!--TgQPHd|||[]--><\/code> Flag:<!--TgQPHd|||[]--><\/strong> This is the magic bullet for the certificate error. It instructs Proxmox to completely bypass the strict HTTPS API verification loop. Instead, it creates a secure tunnel over standard SSH to pull the fresh cluster schema, synchronize cryptographic keys, and launch Corosync cleanly.<!--TgQPHd|||[]--><\/span><!--TgQPHd|||[]--><\/li>\n<p><!--TgQPHd|||[]--><\/ul>\n<p><a href=\"https:\/\/i.imgur.com\/FMdZ6MJ.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i.imgur.com\/FMdZ6MJ.png\" alt=\"\" width=\"774\" height=\"464\" \/><\/a><\/p>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=YSEgIc_3y\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\">The Result<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIGRAA\" data-complete=\"true\" data-processed=\"true\">The joining host will pull the clean, master configuration down, automatically register itself into the cluster map, and instantly turn green across your unified Proxmox dashboard.<!--TgQPHd|||[]--><\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIGhAA\" data-complete=\"true\" data-processed=\"true\">Your existing VMs will reappear right where they belong under the node&#8217;s localized tree in the Web UI, fully integrated and ready to manage.<\/div>\n<div class=\"yhAwj\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sfc-inited=\"2\"><!--TgQPHd|||[]--><\/div>\n<div class=\"AHmQrc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIHBAA\" data-complete=\"true\" data-processed=\"true\">\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIHBAB\" data-complete=\"true\" data-processed=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Proxmox Cluster Findings When I set up my new MSI PVE host, I decided to use the &#8220;Golden Blueprint&#8221; for storage: installing the base Proxmox OS on a cheap SATA SSD to shield it from heavy log writes, leaving my lightning-fast NVMe drive completely clean and unpartitioned as a dedicated LVM-Thin block storage pool for &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/zewwy.ca\/index.php\/2026\/09\/21\/proxmox-cluster-findings\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Proxmox Cluster Findings&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,8],"tags":[506,461,501],"class_list":["post-1859","post","type-post","status-publish","format-standard","hentry","category-hypervisors","category-server-administration","tag-cluster","tag-pve","tag-storage"],"_links":{"self":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1859","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=1859"}],"version-history":[{"count":7,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1859\/revisions"}],"predecessor-version":[{"id":1885,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1859\/revisions\/1885"}],"wp:attachment":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/media?parent=1859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/categories?post=1859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/tags?post=1859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}