{"id":1835,"date":"2026-09-09T00:31:55","date_gmt":"2026-09-09T05:31:55","guid":{"rendered":"https:\/\/zewwy.ca\/?p=1835"},"modified":"2026-09-09T00:31:55","modified_gmt":"2026-09-09T05:31:55","slug":"using-veeam-to-migrate-from-esxi-to-proxmox","status":"publish","type":"post","link":"https:\/\/zewwy.ca\/index.php\/2026\/09\/09\/using-veeam-to-migrate-from-esxi-to-proxmox\/","title":{"rendered":"Using Veeam to Migrate from ESXi to Proxmox"},"content":{"rendered":"<p>Step 1) Have Veeam with Backups from an ESXi Host.<\/p>\n<p>Check.<\/p>\n<p>Step 2) <a href=\"https:\/\/zewwy.ca\/index.php\/2026\/08\/24\/setting-up-a-proxmox-host\/\">Have a PVE Host.<\/a><\/p>\n<p>Check.<\/p>\n<p>Step 3) <a href=\"https:\/\/www.youtube.com\/watch?v=3xId3-IL0K0&amp;t=6s\">Add PVE Host to Veeam<\/a>.<\/p>\n<p>Check. I had a whole bunch of images saved on Img but I lost all the links so the above is a YouTube video that I basically followed to get er done.<\/p>\n<p>The only thing of note here that was annoying is I wanted the worker VM&#8217;s network to be in a certain VLAN and the wizard in Veeam didn&#8217;t have an option to set it, so I had to enter the network config, and when the wizard was at the testing stage, connect to the PVE host and apply the VLAN tag on the network of the worker VM.<\/p>\n<p>Another thing I found weird with my particular setup (step 2), is that for the snapshot storage I could only pick my EXT4 storage and not the LVMthin.<\/p>\n<p>Step 4) Restore VM to PVE<\/p>\n<p>Even with the worker VM on the host, Veeam wouldn&#8217;t give me recovery speed or estimate to recovery, I used the glances command on the PVE host and noticed it was indicating CPU-IOWAIT was the bottle neck,\u00a0 and seeing the logical disk and each SSD in glances showing only roughly 3 MB\/s. I believe this might be due to how the worker VM was configured for its storage settings and how it coded. Took 6 hours but it did work once I did these steps after Veeam said success.<\/p>\n<p>It worked but it wouldn&#8217;t boot even with the SCSI controller set to VMware SCSI. I had to detach the HDD, and reattach using SATA and then under VM options pick it for the boot order.<\/p>\n<p>Network wasn&#8217;t working had to apply VLAN manually, then install virtio drivers to see the NIC, then manually re-IP and it said IP on old phantom NIC, so remove from that? yes, and network back up.<\/p>\n<p>*Note you should really uninstall VMware tools&#8230;. cause for some reason the UN-installer does a hardware check to see if it is a VMware VM, I remember this from when I did a V2P a while back, what does Broadcom have to say about it? &#8220;Fuck you, if you didn&#8217;t remove the application before converting&#8230; fuck you. Uninstaller won&#8217;t work, sit there like a tattoo, fuck you bruuuh.&#8221;<\/p>\n<p><a href=\"https:\/\/knowledge.broadcom.com\/external\/article\/385565\/unable-to-uninstall-vmware-tools-from-vi.html\">Quoted from this KB<\/a><\/p>\n<div class=\"article-detail-card-header\">\n<h4 class=\"wolken-h4\"><span class=\"ez-toc-section\" id=\"IssueIntroduction\"><\/span>Issue\/Introduction<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/div>\n<div class=\"article-detail-card-content wolken-h5\">\n<ul>\n<li>A Windows virtual machine was migrated from vSphere to a non-vSphere environment without uninstalling VMware Tools.<\/li>\n<li>Microsoft installer fails to uninstall the VMware tools.<\/li>\n<li>No errors are identified during the uninstallation process.<\/li>\n<\/ul>\n<div class=\"article-detail-card-header\">\n<h4 class=\"wolken-h4\"><span class=\"ez-toc-section\" id=\"Cause\"><\/span>Cause<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/div>\n<div class=\"article-detail-card-content wolken-h5\">\n<p>After migrating the VM to a different platform, the VMware Tools uninstallation process fails because the virtual machine is not running within a vSphere environment.<\/p>\n<div class=\"article-detail-card-header\">\n<h4 class=\"wolken-h4\"><span class=\"ez-toc-section\" id=\"Resolution\"><\/span>Resolution<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/div>\n<div class=\"article-detail-card-content wolken-h5\">\n<div>\n<ul>\n<li>This is an expected behavior. &lt;- AKA: We coded this deliberately<\/li>\n<li>VMware Tools should be uninstalled prior to migrating the virtual machines out of the vSphere environment. &lt;- AKA: You should of been a perfect admin.<\/li>\n<li>Once the migration is completed, the virtual machine is no longer under the support of VMware by Broadcom. &lt;- AKA: Fuck you!<\/li>\n<\/ul>\n<p>Maybe I&#8217;ll cover a blog doing that, but I forgot in my test example. So, make sure you have the latest backup of the VM after removing VMware tools.<\/p>\n<p>Issue #1<\/p>\n<p>Storage Speeds<\/p>\n<p>If you check out, <a href=\"https:\/\/zewwy.ca\/index.php\/2026\/08\/31\/managing-a-proxmox-host\/\">Managing a Proxmox Host \u2013 Zewwy&#8217;s Info Tech Talks<\/a>, you can see on the Test VM my Crystal Disk mark speeds and it performed poor on the RAN-t1q1 R\/W but the others were fine. I asked AI, it mentioned that LVMThin and the lack of the battery write cache, and the fact it&#8217;s DRAM less SSDs creates the issue.<\/p>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IKCeKb_29\/fLk2Md\" data-sfc-root=\"ep\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" 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);\">1. The LVM-Thin &#8220;Allocation on Commit&#8221; Penalty<\/div>\n<div tabindex=\"0\" data-os-fs=\"\" aria-hidden=\"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: -1px; 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=\"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(232, 234, 242);\">LVM-Thin allocates space dynamically on demand. When a brand new Windows VM runs CrystalDiskMark, it writes to sectors that have <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);\">never been written to before<\/strong>.<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);\" \/>Every single time a tiny 4KB write occurs, the host operating system has to pause, check the hidden LVM metadata tracker, carve out a raw block from the pool, update the metadata index, and <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);\">then<\/em> commit the write. Doing this chunk-by-chunk at Queue Depth 1 (one file at a time) destroys random I\/O performance.<\/div>\n<div 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(232, 234, 242);\"><\/div>\n<\/div>\n<div 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(232, 234, 242);\">\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IKCeKb_2l\/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);\">2. The Interleaved Stripe Stripe-Size Mismatch<\/div>\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);\">When you created the volume, you explicitly declared 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(232, 234, 242);\">64k stripe size<\/strong> (<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.533333px solid rgb(44, 46, 53);\">-I 64k<\/code>) across <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);\">3 disks<\/strong> (<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.533333px solid rgb(44, 46, 53);\">-i 3<\/code>). This means LVM expects data chunks to be written in 192KB sweeps (64KB x 3) to evenly split the load.<\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwiXrviureCWAxVKvokEHbp7I5EQ-7AUegYIAAgTEAA\" 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);\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIExAC\" data-sae=\"\" 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 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);\">CrystalDiskMark is attempting to write a tiny <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);\">4KB<\/strong> packet.<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIExAD\" 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: 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);\">4KB is a fraction of a single 64KB stripe.<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIExAE\" 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: 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\" 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(232, 234, 242);\">Because it doesn&#8217;t span all three drives, the kernel doesn&#8217;t gain parallel execution speed. Instead, the storage driver must execute a <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);\">Read-Modify-Write (RMW)<\/strong> cycle, adding physical disk latency overhead to a minute transaction.<\/span><\/li>\n<\/ul>\n<div class=\"otQkpb\" role=\"heading\" aria-level=\"3\" data-animation-nesting=\"\" data-sfc-cp=\"\" data-wiz-attrbind=\"aria-level=IKCeKb_3i\/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);\">3. Missing VirtIO SCSI Drivers &amp; Write Caching<\/div>\n<div class=\"n6owBd awi2gc\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAA\" 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);\">If you are testing this inside a fresh Windows VM without optimizations, Windows defaults to a generic IDE\/SATA controller emulation, which forces synchronous, non-cached writes. Coupled with your HPE B140i controller lacking a battery-backed physical cache, Windows is forcing every single 4KB block to wait until the flash chips on the Kingston A400 SSDs send an physical acknowledgment back up the chain.<\/div>\n<\/div>\n<\/div>\n<div data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIFxAA\" 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=\"CAAIFxAA\" 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);\">For point 3, I didn&#8217;t tell AI about my test and second blog post where I actually did cover the difference in the different virtual controllers. However, as we saw we didn&#8217;t get much better performance in the RANIO results, OK double in the reads but nothing in the writes. It suggested to change the cache to write back<\/div>\n<\/div>\n<p>So I tried this, and with a 64M target saw speeds up to 5x to 10x better results. So I figured really test it and pick 8GB target file. And the other VM I just migrated onto this host lost it pings. Apparently&#8230;<\/p>\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);\">Optimizing Proxmox storage using 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(232, 234, 242);\">VirtIO SCSI Single<\/strong> controller paired with <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.533333px solid rgb(44, 46, 53);\">io_uring,<\/code><\/strong>IO Thread, and Write Back caching<span style=\"font-size: 1rem;\"> can yield a massive 5x to 10x performance boost in small bursts. However, executing a massive storage stress test (like an 8GB CrystalDiskMark run) on budget, DRAM-less hardware (such as Kingston A400 SSDs) can cause a severe cascading system freeze.<\/span><\/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);\">Here is exactly what happens behind the scenes when a heavy synthetic workload breaks a virtualized storage layer:<\/div>\n<ul class=\"KsbFXc U6u95\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-ved=\"2ahUKEwj6pImIx-CWAxXIz_ACHV3hClAQ-7AUegYIAAgMEAA\" data-hveid=\"CAAIDBAA\" 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);\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDBAB\" data-sae=\"\" 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 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);\">The Host RAM Trap (Linux Dirty Throttling):<\/strong> When a VM uses <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.533333px solid rgb(44, 46, 53);\">Write back<\/code> caching, the Proxmox host intercepts writes and absorbs them instantly into its own memory pool. However, once the cache volume hits Linux&#8217;s internal threshold (<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.533333px solid rgb(44, 46, 53);\">dirty_ratio<\/code>), the kernel hits an emergency brake. It forcefully halts <em class=\"zhvwWe\" 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);\">all concurrent disk I\/O requests<\/em> across the entire storage layer to flush the data down to the physical disks.<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDBAE\" 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: 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);\">The DRAM-less Wall:<\/strong> Consumer-grade SSDs lack dedicated onboard DRAM to map where files live. Under a massive, continuous random 4K write assault, their internal Flash Translation Layer (FTL) becomes heavily bottlenecked. Once their small, temporary SLC burst cache fills up, write speeds plunge down to a crawl (1\u20132 MB\/s), causing I\/O latency to spike into full seconds.<\/span><\/li>\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-hveid=\"CAAIDBAH\" 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: 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);\">The LVM Storage Deadlock:<\/strong> With the physical drives running at a snail&#8217;s pace, the Linux kernel thread managing the thin-LVM volume pool drops into an <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);\">Uninterruptible Sleep (<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.533333px solid rgb(44, 46, 53);\">D<\/code> state)<\/strong>. While the main Proxmox Web GUI stays responsive, any management process trying to hook directly into the VM&#8217;s active hardware layer\u2014such as 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);\"><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.533333px solid rgb(44, 46, 53);\">vncproxy<\/code> console stream<\/strong>\u2014locks up instantly. The target guest VM drops completely off the network because its virtual hard drive stops responding.<\/span><\/li>\n<\/ul>\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);\"><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 &amp; Takeaway:<\/strong> To safely benchmark real-world storage limits without triggering a host-level queue lockup, bypass the host RAM cache entirely by setting the VM disk cache mode to <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.533333px solid rgb(44, 46, 53);\">Default (No Cache)<\/code><\/strong> or <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.533333px solid rgb(44, 46, 53);\">Write through<\/code><\/strong>.<\/div>\n<\/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 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);\">More testing and learning to commence. interesting finds.<\/div>\n<div class=\"article-detail-card-content wolken-h5\">\n<hr class=\"s6NV4e\" data-sfc-root=\"ep\" data-sfc-pl=\"|||[]\" 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: 14px; font-weight: 400; margin: 32px 0px; text-decoration: none; border-bottom: 0px rgb(128, 128, 128);\" \/>\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(232, 234, 242);\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Step 1) Have Veeam with Backups from an ESXi Host. Check. Step 2) Have a PVE Host. Check. Step 3) Add PVE Host to Veeam. Check. I had a whole bunch of images saved on Img but I lost all the links so the above is a YouTube video that I basically followed to get &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/zewwy.ca\/index.php\/2026\/09\/09\/using-veeam-to-migrate-from-esxi-to-proxmox\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Using Veeam to Migrate from ESXi to Proxmox&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","footnotes":""},"categories":[5,6,7,236],"tags":[277,503],"class_list":["post-1835","post","type-post","status-publish","format-standard","hentry","category-hypervisors","category-networking","category-storage","category-veeam","tag-cache","tag-dram"],"_links":{"self":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1835","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=1835"}],"version-history":[{"count":1,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1835\/revisions"}],"predecessor-version":[{"id":1836,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/posts\/1835\/revisions\/1836"}],"wp:attachment":[{"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/media?parent=1835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/categories?post=1835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zewwy.ca\/index.php\/wp-json\/wp\/v2\/tags?post=1835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}