<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged virtualization</title>
<link>https://coderlegion.com/tag/virtualization</link>
<description>Powered by Question2Answer</description>
<item>
<title>KVM vs KVM - what is the question?</title>
<link>https://coderlegion.com/23702/kvm-vs-kvm-what-is-the-question</link>
<description>&lt;p&gt;Last weekend I was looking for a new project for my Raspberry Pi. I was looking for ways to set up a KVM on my Pi5 since it has 8GB of RAM, which is beefy enough for additional virtualisation tasks. Once I started Googling how I should start this task, I would look up “&lt;em&gt;KVM on Raspberry Pi&lt;/em&gt;”. Most of the search results were for another entirely different &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://pikvm.org&quot;&gt;KVM&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A Keyboard, Video, and Mouse (&lt;strong&gt;KVM&lt;/strong&gt;) switch is a hardware device that allows a user to control multiple computers or servers using a single set of keyboard, video display, and mouse devices. While the KVM switch is a great technology that allows you to control multiple computers using your existing setup, I currently use Tailscale for accessing my remote Pis via my home laptop. So that wasn’t what I was looking for. Instead, I was interested in seeing whether I could run a Kernel Virtual Machine (&lt;strong&gt;KVM&lt;/strong&gt;) on my Pi5.&lt;/p&gt;
&lt;p&gt;Despite sharing the same acronym, a KVM switch and the KVM software operate in entirely different realms of technology: one is a physical hardware device for managing physical computers, while the other is open-source software built into Linux to create and manage virtual machines. The KVM Switch routes peripheral and display signals between different systems with the press of a button or a keyboard shortcut.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=9303357946188213631&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;what-is-a-kvm-vm-&quot;&gt;What is a KVM VM?&lt;/h3&gt;
&lt;p&gt;Kernel-based VM is an open source virtualisation technology for Linux. With KVM, Linux can function as a hypervisor that runs multiple, isolated VMs. KVM was announced way back in 2006 and actually merged into the Linux kernel in 2007. &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.wikipedia.org/wiki/Virtualization&quot;&gt;Virtualisation&lt;/a&gt;&lt;/strong&gt;, which lets you run an operating OS inside another OS, is possible thanks to hypervisors. &lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.edera.dev/technical-overview/concepts/hypervisor/&quot;&gt;hypervisor&lt;/a&gt;&lt;/strong&gt; pools computing resources (like processing, memory, and storage) and reallocates them among VMs. The hypervisor can run multiple VMs at once, manage them, and support the creation of new ones. The physical hardware, when used as a hypervisor, is called the host, while the many VMs that use its resources are guests. Hypervisors need OS-level components such as memory management, process scheduling, I/O, device drivers, security management, a network stack, and more to run VMs. &lt;/p&gt;
&lt;p&gt;KVM has all these components because it’s part of the Linux kernel. Every VM is implemented as a regular Linux process, scheduled by the standard Linux scheduler, with dedicated virtual hardware like a network card, graphics adapter, CPU, memory, and disks.&lt;/p&gt;
&lt;h3 id=&quot;similarities-between-kvm-and-kvm&quot;&gt;Similarities between KVM and KVM&lt;/h3&gt;
&lt;p&gt;Both technologies fundamentally exist to solve an efficiency problem: enabling a user to manage multiple OSs from a single workstation without buying duplicate input devices or displays. Whether toggling between two physical tower PCs or switching focus between multiple virtual instances, both implementations allow one operator to interact with distinct, isolated computing environments. Furthermore, both solutions preserve system isolation, ensuring that actions taken within one environment do not interfere with or crash the other operating systems running alongside it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=169879252453172863&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;differences&quot;&gt;Differences&lt;/h3&gt;
&lt;p&gt;The key distinction lies in hardware physical routing versus software virtualisation. A KVM switch is a tangible piece of hardware that physically redirects signal cables (HDMI/DisplayPort and USB) so that a single set of peripherals can control multiple physically distinct servers or PCs. It does not alter how the computers operate; it merely changes which machine receives your keypresses and sends video output to your monitor.&lt;/p&gt;
&lt;p&gt;In contrast, a Kernel-based VM is a software module integrated directly into the Linux kernel that turns the host OS into a &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://aws.amazon.com/compare/the-difference-between-type-1-and-type-2-hypervisors/&quot;&gt;Type-1 hypervisor.&lt;/a&gt;&lt;/strong&gt; Instead of connecting separate physical machines, the kernel-based KVM partitions a single computer's underlying processor, memory, and storage to simulate entirely separate virtual computers (&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.reddit.com/r/sysadmin/comments/a7mofe/who_came_up_with_guest_vm_and_why_do_we_call_it/&quot;&gt;Guest VMs&lt;/a&gt;&lt;/strong&gt;) on the same bare metal.&lt;/p&gt;
&lt;h3 id=&quot;the-question-should-ve-been-kvm-or-xen-&quot;&gt;The question should’ve been KVM or Xen?&lt;/h3&gt;
&lt;p&gt;And that brings us to a totally different question. KVM and Xen - what are the differences and which one can I run on my Pi5 for virtualisation? While both KVM and Xen are open-source Type-1 hypervisors that deliver high-performance virtualisation, their core designs and operational structures differ significantly.&lt;/p&gt;
&lt;p&gt;KVM is built directly into the Linux kernel as a standard kernel module (&lt;code&gt;kvm.ko&lt;/code&gt;). Installing KVM turns an existing Linux OS into a hypervisor, granting you immediate access to standard Linux drivers, process schedulers, and existing system management tools without having to modify the host kernel. Conversely, Xen sits below the OS as a &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.wikipedia.org/wiki/Microkernel&quot;&gt;microkernel&lt;/a&gt;&lt;/strong&gt;-based layer that boots first, before any OS. It relies on a special, privileged Guest VM known as &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://wiki.xenproject.org/wiki/Dom0&quot;&gt;Dom0&lt;/a&gt;&lt;/strong&gt; (Domain 0) to handle hardware access, boot management, and admin control over other Guest VMs (&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.oracle.com/cd/E50245_01/E50249/html/vmcon-ovm-server-domains-domu.html&quot;&gt;DomU&lt;/a&gt;&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;KVM relies purely on hardware-assisted virtualisation (using processor extensions like Intel VT-x or ARM &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.arm.com/documentation/ddi0438/d/Programmers-Model/Virtualization-Extensions-architecture&quot;&gt;Virtualisation Extensions&lt;/a&gt;&lt;/strong&gt;) to run unmodified Guest OSs. Xen historically pioneered &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.edera.dev/technical-overview/concepts/paravirtualization/&quot;&gt;paravirtualisation&lt;/a&gt;&lt;/strong&gt; (where guest kernels are modified to communicate directly with the hypervisor API for higher efficiency), though it now supports hardware-assisted virtualisation as well. Furthermore, Xen’s strict separation of the hypervisor microkernel from the control domain (Dom0) isolates hardware drivers away from guest VMs, which makes it a popular architecture for high-security environments like &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.qubes-os.org/&quot;&gt;Qubes OS&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For almost all Raspberry Pi 5 use cases, &lt;strong&gt;KVM is the far more practical and seamless option.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the case of the Raspberry Pi, you’ll need to verify &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://wiki.archlinux.org/title/KVM#Hardware_support&quot;&gt;hardware virtualisation support&lt;/a&gt;&lt;/strong&gt; before doing anything. Check that ARM CPU virtualisation extensions are available. Check that the KVM hypervisor kernel module is present and accessible with the below command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls -l /dev/kvm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should see an output showing &lt;code&gt;crw-rw---- 1 root kvm ... /dev/kvm&lt;/code&gt;. &lt;br&gt;
If &lt;code&gt;/dev/kvm&lt;/code&gt; exists, hardware acceleration is supported and active.&lt;/p&gt;
&lt;p&gt;The Raspberry Pi’s boot process relies on a proprietary &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.wikipedia.org/wiki/EEPROM&quot;&gt;EEPROM&lt;/a&gt;&lt;/strong&gt;-based bootloader that loads GPU firmware and kernel binaries directly from an SD card or NVMe storage (often chainloaded through U-Boot for standard Linux environments). Because KVM is integrated into standard ARM64 Linux kernels (like Raspberry Pi OS 64-bit or Ubuntu), it requires no special bootloader tweaks or &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.wikipedia.org/wiki/UEFI&quot;&gt;UEFI&lt;/a&gt;&lt;/strong&gt; emulation layer. You simply install &lt;code&gt;`&lt;/code&gt;qemu-kvm&lt;code&gt;`&lt;/code&gt; (&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.qemu.org/&quot;&gt;QEMU&lt;/a&gt;&lt;/strong&gt;) and &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://libvirt.org/&quot;&gt;libvirt&lt;/a&gt;&lt;/strong&gt;, and the Pi instantly acts as a hypervisor using built-in ARM hardware extensions, allowing me to easily spin up VMs using standard Linux tools like &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://virt-manager.org/&quot;&gt;virt-manager&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://cockpit-project.org/&quot;&gt;cockpit&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You can run the following command to install the hypervisor, daemon services, and CLI management tools like QEMU core binaries. Since I’m running Raspberry Pi OS Desktop with the graphical interface, I also appended &lt;code&gt;virt-manager&lt;/code&gt; to the below command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install -y qemu-system-arm qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once the packages are installed, I just need to startup/enable the &lt;code&gt;libvirtd&lt;/code&gt; service to ensure the hypervisor daemon starts automatically on boot:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable --now libvirtd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Libvirt includes a default NAT network interface (&lt;code&gt;virbr0&lt;/code&gt;) for guest VMs. As soon as the default virtual network was configured, I can simply create my first Guest VM on the Pi5 and use an Ubuntu ARM64 ISO image, sourced from the Canonical website. The &lt;code&gt;virt-install&lt;/code&gt; looks a little like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;virt-install \
  --name debian-vm \
  --memory 2048 \
  --vcpus 2 \
  --disk size=10,bus=virtio \
  --os-variant debian12 \
  --cdrom /path/to/debian-arm64.iso \
  --network network=default \
  --graphics vnc,listen=0.0.0.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In contrast, setting up Xen on a Pi 5 requires a complex boot architecture. Because Xen acts as a microkernel that must load before any OS, booting it on an &lt;strong&gt;SBC&lt;/strong&gt; (Single Board Computer) generally requires using &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.u-boot.org/&quot;&gt;U-Boot&lt;/a&gt;&lt;/strong&gt; to load the Xen binary alongside device-tree overlays, a customised Dom0 control domain, and a secondary driver domain. While projects like &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/xen-troops&quot;&gt;Xen-Troops&lt;/a&gt;&lt;/strong&gt; exist specifically to compile custom &lt;strong&gt;Yocto-based&lt;/strong&gt; Xen images for embedded systems and automotive apps, setting this up for home or homelab experiments involves significant compilation overhead, non-standard driver configs, and manual partition setups. While maybe not suited to Pi5, it’s not impossible on previous versions like the Pi4, as stated on the &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linux.com/news/xen-on-raspberry-pi-4-adventures/&quot;&gt;Linux blog&lt;/a&gt;&lt;/strong&gt;. For edge use-cases you can certainly stick with KVM for a smooth setup unless you specifically need Xen's compartmentalised driver architecture for complex embedded development. If you’d like to read why Edera specifically opted for Xen when building a secure microservice foundation, check out their &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://edera.dev/stories/why-edera-built-on-xen-a-secure-container-foundation&quot;&gt;blog post&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/23702/kvm-vs-kvm-what-is-the-question</guid>
<pubDate>Tue, 28 Jul 2026 22:04:05 +0000</pubDate>
</item>
<item>
<title>I Spent a Week Installing WSL2. The Fix Was Two Lines.</title>
<link>https://coderlegion.com/16871/i-spent-a-week-installing-wsl2-the-fix-was-two-lines</link>
<description>&lt;blockquote&gt;&lt;p&gt;&quot;WSL2? Five minutes, tops.&quot; — Me, seven days ago.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;tl-dr&quot;&gt;TL;DR&lt;/h3&gt;
&lt;p&gt;On Windows 11 25H2 (build 26200), enabling VirtualMachinePlatform hangs at 37.8%. Forever. The servicing stack is stuck on 24H2 (build 26100) while the OS moved to 25H2 (build 26200). Windows literally cannot service itself.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Add-WindowsCapability -Online -Name &quot;Microsoft.Windows.HyperV.VirtualMachinePlatform~~~~0.0.1.0&quot;
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you just want the fix, there it is. If you want to know how it took a week and 10 failed attempts to arrive at two lines of PowerShell, keep reading.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;day-1-innocence&quot;&gt;Day 1: Innocence&lt;/h3&gt;
&lt;p&gt;Simple plan. Install WSL2. Set up Ubuntu 24.04. Do actual work.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;wsl --install -d Ubuntu-24.04
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;37.8%.&lt;/p&gt;
&lt;p&gt;I made coffee. Came back. 37.8%.&lt;/p&gt;
&lt;p&gt;I had lunch. Came back. 37.8%.&lt;/p&gt;
&lt;p&gt;37.8 is now my least favorite number.&lt;/p&gt;
&lt;h3 id=&quot;the-crime-scene&quot;&gt;The Crime Scene&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;OS &lt;/td&gt;&lt;td&gt;Windows 11 Pro 25H2 (Build 26200.8037)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CPU &lt;/td&gt;&lt;td&gt;Intel Core Ultra 9 275HX&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DISM version &lt;/td&gt;&lt;td&gt;10.0.26100.5074&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Servicing stack &lt;/td&gt;&lt;td&gt;10.0.26100.8035&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;See it? &lt;strong&gt;OS is build 26200. Servicing stack is build 26100.&lt;/strong&gt; The mechanic has last year's manual for this year's car. If you spotted this, you already know the ending. I did not spot this on Day 1.&lt;/p&gt;
&lt;h3 id=&quot;days-2-6-the-parade-of-failures&quot;&gt;Days 2-6: The Parade of Failures&lt;/h3&gt;
&lt;h4 id=&quot;gui-stuck-cancel-also-stuck-&quot;&gt;GUI — Stuck. Cancel also stuck.&lt;/h4&gt;
&lt;p&gt;&quot;Turn Windows features on/off.&quot; Checked the box. Progress bar froze.&lt;/p&gt;
&lt;p&gt;Clicked Cancel. Cancel froze.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A cancel button that cannot be cancelled.&lt;/strong&gt; This is the operating system from the world's most valuable company.&lt;/p&gt;
&lt;p&gt;Task Manager. End Process. Moving on.&lt;/p&gt;
&lt;h4 id=&quot;dism-37-8-&quot;&gt;DISM — 37.8%&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;37.8%. We meet again.&lt;/p&gt;
&lt;h4 id=&quot;powershell-same-wall-different-paint&quot;&gt;PowerShell — Same wall, different paint&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All -NoRestart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Calls DISM internally. Same result. Changing the wrapper doesn't change the candy.&lt;/p&gt;
&lt;h4 id=&quot;uninstalled-bluestacks-wrong-suspect&quot;&gt;Uninstalled BlueStacks — Wrong suspect&lt;/h4&gt;
&lt;p&gt;Found forum posts: &quot;Android emulators conflict with Hyper-V.&quot; I had BlueStacks 10 installed. Uninstalled it completely. Registry cleanup. Folder purge. The works.&lt;/p&gt;
&lt;p&gt;Result: 37.8%.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BlueStacks was innocent.&lt;/strong&gt; And now I have to reinstall it later.&lt;/p&gt;
&lt;h4 id=&quot;offline-install-from-24h2-iso-version-mismatch&quot;&gt;Offline install from 24H2 ISO — Version mismatch&lt;/h4&gt;
&lt;p&gt;&quot;If the download is the problem, go offline.&quot;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess /Source:D:\Sources\Install.wim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;0x800f0912&lt;/code&gt;. The ISO is 24H2 (26100), the OS is 25H2 (26200). Windows refuses the source files because they're from &quot;the wrong version.&quot; Self-compatibility is apparently optional.&lt;/p&gt;
&lt;h4 id=&quot;windows-update-cache-reset-no-effect&quot;&gt;Windows Update cache reset — No effect&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;net stop wuauserv
net stop bits
Remove-Item C:\Windows\SoftwareDistribution\Download\* -Recurse -Force
net start bits
net start wuauserv
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Clean cache. Same 37.8%. Cleaning the house doesn't fix the plumbing.&lt;/p&gt;
&lt;h4 id=&quot;pending-operations-cleanup-partial&quot;&gt;Pending operations cleanup — Partial&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;dism /online /cleanup-image /revertpendingactions
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cleared the backlog. Feature still won't activate. Finishing your homework doesn't mean you'll pass the exam.&lt;/p&gt;
&lt;h4 id=&quot;in-place-repair-install-didn-t-downgrade&quot;&gt;In-place repair install — Didn't downgrade&lt;/h4&gt;
&lt;p&gt;The nuclear option. Ran 24H2 ISO's &lt;code&gt;setup.exe&lt;/code&gt; with &quot;Keep personal files and apps.&quot;&lt;/p&gt;
&lt;p&gt;40 minutes. Three reboots.&lt;/p&gt;
&lt;p&gt;Result: &lt;strong&gt;OS stayed on 25H2 (26200).&lt;/strong&gt; In-place install doesn't downgrade. But it did clean up the component store. This becomes a crucial plot point later.&lt;/p&gt;
&lt;h3 id=&quot;day-7-reading-the-logs-finally-using-my-brain-&quot;&gt;Day 7: Reading the Logs (Finally Using My Brain)&lt;/h3&gt;
&lt;p&gt;A week of &quot;try something else until it works.&quot; At this point, the question isn't &lt;em&gt;what&lt;/em&gt; doesn't work — it's &lt;em&gt;why&lt;/em&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Select-String -Path C:\Windows\Logs\CBS\CBS.log `
  -Pattern &quot;Error|Failed|0x800f&quot; -Context 2 | Select-Object -Last 20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The smoking gun:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;Failed to get uup features from WU, sessionData: {
  &quot;ModuleID&quot;:&quot;FOD&quot;,
  &quot;Features&quot;:[{
    &quot;name&quot;:&quot;Windows.HyperV.OptionalFeature.VirtualMachinePlatform.Client.Disabled~&quot;
  }]
} [HRESULT = 0x800f0820 - CBS_E_CANCEL]
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;download source: 8, download time (secs): 1256, 
download status: 0x800f0820 (CBS_E_CANCEL)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;1,256 seconds. Twenty-one minutes waiting for Windows Update to deliver a package it will never find.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From the DISM log, the confession:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;Dism.exe version: 10.0.26100.5074
Target image: OS Version=10.0.26200.8037
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The servicing stack (26100) is trying to service a newer OS (26200). It goes to Windows Update looking for FOD packages matching this combination. Those packages don't exist in the UUP catalog. So it waits. And waits. And times out at 37.8%.&lt;/p&gt;
&lt;p&gt;A car mechanic with a 2023 catalog trying to order parts for a 2024 model. &quot;This part number doesn't exist in our system, sir.&quot;&lt;/p&gt;
&lt;p&gt;This is the servicing architecture of the world's largest software company.&lt;/p&gt;
&lt;h3 id=&quot;the-fix-use-the-back-door&quot;&gt;The Fix: Use the Back Door&lt;/h3&gt;
&lt;p&gt;DISM can't download the FOD through its usual channel (UUP). But &lt;code&gt;Add-WindowsCapability&lt;/code&gt; uses a &lt;strong&gt;different channel&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Same building. Front door is under construction. Back door is open. The sign only mentions the front door. Classic Windows UX.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;# Step 1: Back door — install payload via alternative channel
Add-WindowsCapability -Online -Name &quot;Microsoft.Windows.HyperV.VirtualMachinePlatform~~~~0.0.1.0&quot;

# Step 2: Now activate using only local files (no internet needed)
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;100%.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One hundred percent.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First three-digit number I've seen all week.&lt;/p&gt;
&lt;h3 id=&quot;why-this-works&quot;&gt;Why This Works&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;[Front door — BLOCKED]
DISM enable-feature
  → Needs FOD payload
  → Windows Update UUP channel
  → Servicing stack (26100) ≠ OS (26200)
  → &quot;Part not found in catalog&quot;
  → 21 min timeout → CBS_E_CANCEL

[Back door — OPEN]
Add-WindowsCapability  
  → Different download channel (bypasses UUP)
  → Payload installed locally ✓

DISM + /LimitAccess
  → &quot;Internet? Don't need it.&quot;
  → Local files only
  → Success ✓
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Both commands use the same Windows servicing system. But they fetch FOD packages through different channels. DISM goes through UUP, where the version mismatch kills it. &lt;code&gt;Add-WindowsCapability&lt;/code&gt; takes a different route. The official docs don't mention this distinction. You're welcome.&lt;/p&gt;
&lt;h3 id=&quot;if-you-found-this-article&quot;&gt;If You Found This Article&lt;/h3&gt;
&lt;p&gt;You've probably already tried and failed multiple times. That means &lt;strong&gt;pending operations&lt;/strong&gt; are likely piled up. Clean house first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;# Light cleanup
dism /online /cleanup-image /revertpendingactions
# → Reboot → Run the two-line fix

# If that's not enough (in-place repair)
# 24H2 ISO → setup.exe → &quot;Keep personal files and apps&quot;
# → Reboot → Run the two-line fix
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;complete-flow-for-fresh-starts-&quot;&gt;Complete Flow (For Fresh Starts)&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;1. Enable virtualization in BIOS
   HP laptops: F10 → Security or Configuration → Enable VT-x
        ↓
2. Enable Hyper-V + WSL (these work fine, ironically)
   dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
        ↓
3. Clean pending operations (if you've been trying things)
   dism /online /cleanup-image /revertpendingactions → reboot
        ↓
4. The actual fix
   Add-WindowsCapability -Online -Name &quot;Microsoft.Windows.HyperV.VirtualMachinePlatform~~~~0.0.1.0&quot;
   dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess
        ↓
5. Reboot → Install WSL2
   wsl --install -d Ubuntu-24.04
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;is-this-your-problem-&quot;&gt;Is This Your Problem?&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;# Check version mismatch in DISM log
Get-Content C:\Windows\Logs\DISM\dism.log -Tail 100
# &quot;version:&quot; ≠ &quot;image version:&quot; → yes, this is your problem

# Check CBS log for the specific failure
Select-String -Path C:\Windows\Logs\CBS\CBS.log `
  -Pattern &quot;Error|Failed|0x800f&quot; -Context 2 | Select-Object -Last 20
# &quot;CBS_E_CANCEL&quot; → yes, this is your problem

# Verify CPU virtualization (prerequisite)
Get-CimInstance -ClassName Win32_Processor | 
  Select-Object VirtualizationFirmwareEnabled, VMMonitorModeExtensions
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;summary&quot;&gt;Summary&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Symptom&lt;/strong&gt; &lt;/td&gt;&lt;td&gt;VirtualMachinePlatform stuck at 37.8%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Root cause&lt;/strong&gt; &lt;/td&gt;&lt;td&gt;25H2 OS (26200) + 24H2 servicing stack (26100) = FOD download mismatch&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Fix&lt;/strong&gt; &lt;/td&gt;&lt;td&gt;&lt;code&gt;Add-WindowsCapability&lt;/code&gt; to bypass → &lt;code&gt;dism /LimitAccess&lt;/code&gt; to activate&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Prerequisite&lt;/strong&gt; &lt;/td&gt;&lt;td&gt;Clear pending operations&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt; &lt;/td&gt;&lt;td&gt;One week of evenings. One wrongly accused BlueStacks. A lasting distrust of progress bars.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;lessons&quot;&gt;Lessons&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Read the logs first.&lt;/strong&gt; &quot;Try random things until something works&quot; is the scenic route to nowhere.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows Insider means signing up for this.&lt;/strong&gt; 25H2 is a preview build. The servicing stack hasn't caught up. Now you know.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Same building, multiple doors.&lt;/strong&gt; When DISM fails, &lt;code&gt;Add-WindowsCapability&lt;/code&gt; exists. The docs won't tell you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Feed your logs to AI.&lt;/strong&gt; Nobody should read 160,000 lines of CBS log with their own eyes.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This troubleshooting session was done with &lt;a rel=&quot;nofollow&quot; href=&quot;https://claude.ai/code&quot;&gt;Claude Code&lt;/a&gt;. It pulled the critical 6 lines from a 160,000-line CBS log and helped identify the &lt;code&gt;Add-WindowsCapability&lt;/code&gt; back door. Without it, this would have ended with a format and reinstall.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/16871/i-spent-a-week-installing-wsl2-the-fix-was-two-lines</guid>
<pubDate>Wed, 06 May 2026 15:49:50 +0000</pubDate>
</item>
<item>
<title>Proxmox LVM Notları</title>
<link>https://coderlegion.com/15709/proxmox-lvm-notlari</link>
<description>&lt;h4 id=&quot;t-m-pve-makinelerde-uygulanacaklar&quot;&gt;Tüm PVE makinelerde uygulanacaklar&lt;/h4&gt;
&lt;p&gt;Sanal makineye atanan disk silindiğinde üzerindeki verilerin sıfırlanmasını sağlar. Aksi durumda aynı aralığa denk gelen başka bir mantıksal alanda bir önceki mantıksal alanın verilerine erişim sağlanabilir.&lt;br&gt;
&lt;code&gt;sed -i 's/^\([ \t]*\)#*[ \t]*issue_discards[ \t]*=.*/\1issue_discards = 1/g' /etc/lvm/lvm.conf&lt;/code&gt;&lt;/p&gt;
&lt;h4 id=&quot;-nerilen-sanal-makine-disk-yap-land-rmas-&quot;&gt;Önerilen sanal makine disk yapılandırması&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Tür &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;Seçenek&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;SCSI Controller &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;VirtIO SCSI Single&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;HDD Türü &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;scsi&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Cache &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Write through&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Discard &lt;/td&gt;&lt;td align=&quot;left&quot;&gt; seçili değil&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;IO thread &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;✔ seçili&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;Async IO &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Default (io_uring)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&quot;lvm-b-l-m-olu-turma-ve-di-er-pve-makineler-zerinde-devreye-alma&quot;&gt;LVM bölüm oluşturma ve diğer PVE makineler üzerinde devreye alma&lt;/h4&gt;
&lt;h5 id=&quot;-lk-makinede&quot;&gt;İlk makinede&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;pvcreate /dev/mapper/ORNEK_LUN
vgcreate TEST-PVE-SHARED /dev/mapper/ORNEK_LUN
&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;di-er-makinelerde&quot;&gt;Diğer makinelerde&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;‌pvscan --cache -a ay
pvs # Diski görebilmeliyiz.
vgs # Hacim grubunu görebilmeliyiz.
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;lvm-disk-geni-letme&quot;&gt;LVM disk genişletme&lt;/h4&gt;
&lt;h5 id=&quot;herhangi-bir-makinede&quot;&gt;Herhangi bir makinede&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;lsblk # Diskin genişletildiğini çekirdek algılamış mı diye bakılır. Algılamamışsa aşağıdaki komut çalıştırılır.
for HDD in $(ls -1 /dev/sd* | awk -F '/' '!/[0-9]/ {print $3}'); do echo 1 &amp;gt; &quot;/sys/class/block/${HDD}/device/rescan&quot;; done
sleep 5
systemctl reload multipathd.service
pvresize /dev/mapper/ORNEK_LUN
&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;kalan-di-er-makinelerde&quot;&gt;Kalan diğer makinelerde&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;for HDD in $(ls -1 /dev/sd* | awk -F '/' '!/[0-9]/ {print $3}'); do echo 1 &amp;gt; &quot;/sys/class/block/${HDD}/device/rescan&quot;; done
sleep 5
multipath -r
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;depolama-anl-k-g-r-nt-s-nden-d-n-restore-storage-snapshot-&quot;&gt;Depolama anlık görüntüsünden dönüş (Restore Storage Snapshot)&lt;/h4&gt;
&lt;h5 id=&quot;multipath-yap-land-rmas-yap-ld-ktan-sonra&quot;&gt;Multipath yapılandırması yapıldıktan sonra&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-‌&quot;&gt;pvscan --cache -a ay
vgimportclone -n YENI_VG_ADI /dev/mapper/YEDEK_ADI
vgchange -a y YENI_VG_ADI
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;windows-makinelerde-ya-anan-yedek-alma-sorununun-z-m-&quot;&gt;Windows makinelerde yaşanan yedek alma sorununun çözümü&lt;/h4&gt;
&lt;p&gt;Sorun 2 nedenden kaynaklanıyor.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;QEMU Guest Agent VSS Provider'ın VSS'i yönetme şeklinden kaynaklı.&lt;br&gt;
Özellikle MSSQL Server ve MS Exchange bulunan sunucularda sorun yaşanıyor.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Numara &lt;/th&gt;&lt;th align=&quot;left&quot;&gt;İsim&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;1 &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;VSS_BT_FULL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;2 &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;VSS_BT_INCREMENTAL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;3 &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;VSS_BT_DIFFERENTIAL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;4 &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;VSS_BT_LOG&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;left&quot;&gt;5 &lt;/td&gt;&lt;td align=&quot;left&quot;&gt;VSS_BT_COPY&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;MSSQL Server ve MS Exchange gibi VSS duyarlı yazılımların en iyi çalıştığı seçenek &lt;code&gt;VSS_BT_COPY&lt;/code&gt; yani &lt;code&gt;5&lt;/code&gt; numaralı seçenek.&lt;br&gt;
Aşağıdaki komut ile Kayıt Defteri üzerinde gerekli değişikliği yapabilirsiniz. Bilgisayarı yeniden başlattıktan sonra devreye girecektir.&lt;br&gt;
&lt;code&gt;Set-ItemProperty -Path &quot;HKLM:\SYSTEM\CurrentControlSet\Services\QEMU Guest Agent VSS Provider&quot; -Name &quot;VssOption&quot; -Value 5 -Type DWord&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Yedek alma işlemi başladığında Windows'taki VSS hizmeti yetki sorunu yaşıyor. Akabinde Olay Görüntüleyicide(Event Viewer) 8194 numaralı hata kaydı oluşuyor. &lt;br&gt;
Bu sorunu düzeltmek için, Başlat(Start) (sağ tıklayın) → Çalıştır yoluyla &lt;code&gt;dcomcnfg&lt;/code&gt; aracını çalıştırın. Konsol Kökü(Console Root) → Bileşen Hizmetleri(Component Services) → Bilgisayarlar(Computers) → Bilgisayarım(My Computer) (sağ tıklayın → Özellikler) yolunu izleyin. COM Güvenliği(COM Security) sekmesindeki Erişim İzinleri(Access Permission) bölümünde, varsayılan ayarları düzenleyin ve NETWORK SERVICE kullanıcısını ekleyerek Yerel Erişime(Local Access) izin verin.&lt;br&gt;
Değişikliklerin geçerli olması için sanal makineyi yeniden başlatın.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;-nemli-notlar&quot;&gt;Önemli Notlar&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;Farklı sürümler arası sorunsuz geçiş için mevcut ana sürümlerin en güncel haline getirilmesi gerekmektedir.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;Proxmox 9'a geçiş öncesi LVM'deki anlık görüntü(snapshot) özelliği devredışı kalmalıdır. Kümedeki eski sürüm Proxmox makinelerde LVM bölüm için söz dizimi(syntax) hatası veriyor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;HA yapılandırmasında öncelik değeri belirtilmezse HA kuralı çalıştığında sistem, kaynağın en müsait olduğu düğüme(node) sanal makineyi taşır.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/15709/proxmox-lvm-notlari</guid>
<pubDate>Fri, 24 Apr 2026 07:42:53 +0000</pubDate>
</item>
<item>
<title>Scale Computing Unifies Edge Infrastructure with Single-Platform Architecture</title>
<link>https://coderlegion.com/10940/scale-computing-unifies-edge-infrastructure-with-single-platform-architecture</link>
<description>&lt;p&gt;At the 66th IT Press Tour, Scale Computing presented its consolidated edge computing platform following its merger with Acumera. The company now manages over 100,000 sites and 250,000 edge computing workloads through a unified software stack.&lt;/p&gt;
&lt;h3 id=&quot;technical-architecture&quot;&gt;Technical Architecture&lt;/h3&gt;
&lt;p&gt;Scale Computing's platform consists of four integrated components that handle everything from virtualization to network security:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SC//HyperCore&lt;/strong&gt; combines compute, storage, and virtualization into a single software layer. The system runs on any x86 server and includes self-healing automation that detects and recovers from infrastructure issues without manual intervention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SC//Fleet Manager&lt;/strong&gt; provides centralized orchestration through a cloud-based management interface. Zero-touch provisioning automates deployments across the entire fleet. You can push application updates to thousands of locations without site-by-site scripting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SC//Reliant Platform&lt;/strong&gt; delivers edge computing as a service with an API-powered management system. The platform supports both VMs and containers on dedicated server environments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SC//AcuVigil&lt;/strong&gt; handles managed network services with SDWAN and next-generation firewall capabilities. The service includes hardened network devices deployable in high-availability configurations.&lt;/p&gt;
&lt;h3 id=&quot;running-ai-at-the-edge&quot;&gt;Running AI at the Edge&lt;/h3&gt;
&lt;p&gt;Scale Computing positions its platform as infrastructure for decentralized AI systems. The edge deployment model addresses four specific requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reduced latency for real-time processing&lt;/li&gt;
&lt;li&gt;Data privacy through local processing&lt;/li&gt;
&lt;li&gt;Deployment speed with zero-touch provisioning&lt;/li&gt;
&lt;li&gt;Scalability across distributed locations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Yum! Brands' case study demonstrates this approach. Taco Bell deployed proprietary Voice AI technology on the Reliant Platform across hundreds of drive-thru locations. The system processes natural language orders locally and integrates with POS systems and digital menu boards.&lt;/p&gt;
&lt;h3 id=&quot;development-and-deployment&quot;&gt;Development and Deployment&lt;/h3&gt;
&lt;p&gt;For developers working with edge applications, the platform supports standard containerized workloads alongside traditional VMs. The Advance Auto Parts deployment shows this flexibility—they replaced single-server POS systems with SC//Platform to support their container strategy while maintaining existing VM workloads.&lt;/p&gt;
&lt;p&gt;Breedon Group's implementation illustrates the infrastructure approach. They run Kubernetes nodes on NVMe-powered clusters dedicated to data analytics, connecting remote IoT devices through Azure IoT Hub and serving Power BI users across the organization.&lt;/p&gt;
&lt;p&gt;The platform handles replication between sites automatically. Snapshots and failover mechanisms operate without custom scripting.&lt;/p&gt;
&lt;h3 id=&quot;integration-points&quot;&gt;Integration Points&lt;/h3&gt;
&lt;p&gt;SC//Platform integrates with common enterprise tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cloud providers for hybrid deployments&lt;/li&gt;
&lt;li&gt;Container orchestration platforms&lt;/li&gt;
&lt;li&gt;Analytics and BI tools&lt;/li&gt;
&lt;li&gt;PCI compliance tools and security scanning&lt;/li&gt;
&lt;li&gt;Payment processing systems&lt;/li&gt;
&lt;li&gt;Network monitoring and traffic analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The architecture separates the management plane from the edge platform, enabling centralized configuration and policy management while maintaining local processing capabilities.&lt;/p&gt;
&lt;h3 id=&quot;deployment-scale&quot;&gt;Deployment Scale&lt;/h3&gt;
&lt;p&gt;Scale Computing operates in 30+ countries with 4,000 customers. The platform scales beyond 10,000 locations from a single management interface.&lt;/p&gt;
&lt;p&gt;Performance metrics from customer deployments show uptime above 99%, a 70% reduction in overall costs, and a 50% improvement in operational efficiency.&lt;/p&gt;
&lt;p&gt;The company holds 30+ patents related to edge computing and network security technologies.&lt;/p&gt;
&lt;h3 id=&quot;what-this-means-for-edge-development&quot;&gt;What This Means for Edge Development&lt;/h3&gt;
&lt;p&gt;Edge computing infrastructure is consolidating. Instead of managing separate systems for virtualization, networking, security, and application deployment, you can work with a unified platform.&lt;/p&gt;
&lt;p&gt;The shift to zero-touch provisioning changes how you approach edge deployments. Applications need to support automated deployment and configuration without onsite technical staff.&lt;/p&gt;
&lt;p&gt;Container support at the edge opens standard DevOps workflows for distributed environments. You can use the same tools and processes you use in the data center.&lt;/p&gt;
&lt;p&gt;Network security integration at the platform level reduces the complexity of securing edge applications. The infrastructure handles SDWAN, firewall rules, and compliance requirements.&lt;/p&gt;
&lt;p&gt;Scale Computing's approach reflects where edge computing is headed—toward platforms that handle the full stack from hardware management to application deployment.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/10940/scale-computing-unifies-edge-infrastructure-with-single-platform-architecture</guid>
<pubDate>Mon, 02 Feb 2026 15:56:16 +0000</pubDate>
</item>
<item>
<title>VergeIO's Unified Architecture: A Developer's Alternative to VMware</title>
<link>https://coderlegion.com/10842/vergeios-unified-architecture-a-developers-alternative-to-vmware</link>
<description>&lt;p&gt;At the 66th IT Press Tour, VergeIO Chief Marketing Officer George Crump presented what might be the most compelling technical argument against traditional IT stacks I've heard in years. The pitch wasn't about incremental improvements or feature parity. It was about fundamentally rethinking how infrastructure software gets built.&lt;/p&gt;
&lt;h3 id=&quot;the-code-base-argument&quot;&gt;The Code Base Argument&lt;/h3&gt;
&lt;p&gt;Here's the number that caught my attention: 400,000 lines of code.&lt;/p&gt;
&lt;p&gt;That's the entire VergeIO code base. Compare that to a typical VMware stack, which includes vSphere, vSAN, NSX, and vCenter. Add it all up, and you're looking at roughly 30 million lines of code.&lt;/p&gt;
&lt;p&gt;VergeIO delivers comparable functionality with 1.3% of the code. That's not a typo.&lt;/p&gt;
&lt;p&gt;This efficiency comes from a single unified kernel that handles compute, storage, networking, and management. No separate teams writing separate code bases. No integration layers trying to make disparate systems work together. Just one team in Ann Arbor, Michigan writing one piece of software.&lt;/p&gt;
&lt;h3 id=&quot;architecture-that-actually-makes-sense&quot;&gt;Architecture That Actually Makes Sense&lt;/h3&gt;
&lt;p&gt;Traditional infrastructure stacks look like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Compute Layer&lt;/strong&gt;: vSphere/ESXi&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage Layer&lt;/strong&gt;: vSAN or dedicated array&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network Layer&lt;/strong&gt;: NSX or physical switches&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automation Layer&lt;/strong&gt;: Terraform/Ansible scripts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Management Layer&lt;/strong&gt;: vCenter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each layer has its own code base, its own metadata structures, and its own inefficiencies.&lt;/p&gt;
&lt;p&gt;VergeIO collapses this into a single software layer called VergeOS. Install one thing, get everything: complete virtualization (KVM/QEMU based), robust storage (VergeFS), full Layer 2/Layer 3 networking (VergeFabric), and integrated management.&lt;/p&gt;
&lt;p&gt;The advantage goes beyond simplicity. With a unified metadata structure controlling the entire environment, VergeIO understands memory allocation, storage patterns, and network traffic in ways that orchestrated stacks can't match.&lt;/p&gt;
&lt;h3 id=&quot;the-storage-story&quot;&gt;The Storage Story&lt;/h3&gt;
&lt;p&gt;VergeFS includes global inline deduplication that works differently than traditional storage systems. Pure Storage and others run deduplication at the backend—data gets written, processed through their algorithm, and deduplicated blocks are stored. When you recall that data, it needs to be rehydrated before sending it back up the network.&lt;/p&gt;
&lt;p&gt;VergeIO deduplicates at the kernel level. Every node understands the metadata. Data moves between nodes without rehydration. RAM cache gets deduplicated. Storage gets deduplicated. Memory gets deduplicated.&lt;/p&gt;
&lt;p&gt;Crump cited examples of customers running 30,000 to 40,000 IOPS off consumer-grade NVMe SSDs on micro servers. The efficiency gains are real.&lt;/p&gt;
&lt;h3 id=&quot;disaster-recovery-done-right&quot;&gt;Disaster Recovery Done Right&lt;/h3&gt;
&lt;p&gt;Here's where things get interesting from an engineering perspective.&lt;/p&gt;
&lt;p&gt;VergeIO includes IO Guardian—a local protection system that acts as a standalone VergeOS instance designed purely to receive snapshot data. If you lose multiple drives in a catastrophic failure, the system pulls missing blocks from the IO Guardian server in real time.&lt;/p&gt;
&lt;p&gt;Crump shared a story about a customer where a service technician mistakenly ejected drives from three out of four servers. The system automatically restarted affected VMs and started pulling data from IO Guardian. The customer's customers never noticed. No data loss, no downtime.&lt;/p&gt;
&lt;p&gt;The disaster recovery feature, IO Replicate, takes this further. It's WAN-optimized, leveraging the same deduplication system. If five sites replicate to one location, only unique data crosses the wire.&lt;/p&gt;
&lt;h3 id=&quot;virtual-data-centers-and-multi-tenancy&quot;&gt;Virtual Data Centers and Multi-Tenancy&lt;/h3&gt;
&lt;p&gt;VergeIO's approach to multi-tenancy is built around Virtual Data Centers (VDCs). Think of it as VMware's encapsulation of individual VMs, but applied to entire data centers.&lt;/p&gt;
&lt;p&gt;You can snapshot an entire VDC—capturing VMs, network configuration, IP addresses, everything—in a perfectly consistent state. That snapshot replicates to your DR site as a single coherent unit. Recovery typically takes under an hour. According to Crump, VergeIO maintains a 100% success rate on disaster recovery.&lt;/p&gt;
&lt;p&gt;For cloud service providers, each customer gets their own VDC. No need to buy new hardware for each customer—just allocate resources from the shared infrastructure. Each VDC can have different service levels, and customers can log into their own isolated environment.&lt;/p&gt;
&lt;p&gt;Sub-tenancy is supported too. One service provider uses VergeIO to provide infrastructure to other service providers, who then create their own customer VDCs.&lt;/p&gt;
&lt;h3 id=&quot;api-first-design&quot;&gt;API-First Design&lt;/h3&gt;
&lt;p&gt;The GUI is entirely driven by the API. If the interface can do it, the API can do it.&lt;/p&gt;
&lt;p&gt;More importantly, the API has remained stable for 12 years. Your Terraform and Ansible scripts don't break when you upgrade hardware or change storage configurations. Write to one API instead of juggling separate interfaces for compute, storage, and networking.&lt;/p&gt;
&lt;p&gt;VergeIO supports the full Infrastructure-as-Code ecosystem: Terraform, Ansible, Python, PowerShell, Packer. There's a Prometheus exporter for observability tools like Grafana.&lt;/p&gt;
&lt;h3 id=&quot;the-vxrail-opportunity&quot;&gt;The VxRail Opportunity&lt;/h3&gt;
&lt;p&gt;Dell recently announced that VxRail is &quot;no more,&quot; recommending customers move to Dell Private Cloud—which essentially means buying new Dell hardware and new software licenses.&lt;/p&gt;
&lt;p&gt;VergeIO offers a different path: VxRail modernization instead of VxRail replacement. Install VergeOS on existing VxRail hardware and get better performance and efficiency without replacing servers.&lt;/p&gt;
&lt;p&gt;The company has about a dozen customers who've done this, the largest being Topgolf. With memory and flash storage prices increasing, extending the life of existing hardware makes financial sense.&lt;/p&gt;
&lt;h3 id=&quot;technical-specs-worth-noting&quot;&gt;Technical Specs Worth Noting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hypervisor&lt;/strong&gt;: KVM/QEMU based with VergeIO extensions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: Unlimited nodes per system, petabyte-scale storage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Networking&lt;/strong&gt;: 10Gb/25Gb/100Gb Ethernet, Open vSwitch integration&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage Media&lt;/strong&gt;: NVMe (hot tier), SSD/SATA (warm tier), HDD (cold capacity)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Management&lt;/strong&gt;: HTML5 web interface and full REST API&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the-licensing-model&quot;&gt;The Licensing Model&lt;/h3&gt;
&lt;p&gt;VergeIO charges by physical server. Not by processor count, not by cores, not by storage capacity. You build the server however you want—four processors, 200 cores, a petabyte of capacity—same price.&lt;/p&gt;
&lt;p&gt;This pricing model encourages customers to consolidate onto fewer, denser servers in their second hardware refresh cycle. Fewer servers means savings on power, cooling, rack space, and operational overhead.&lt;/p&gt;
&lt;h3 id=&quot;what-this-means-for-developers&quot;&gt;What This Means for Developers&lt;/h3&gt;
&lt;p&gt;If you're responsible for infrastructure, this architecture matters.&lt;/p&gt;
&lt;p&gt;Single API to learn instead of three or four. Code that doesn't break when hardware changes. Consistent metadata structure across compute, storage, and networking. Deduplication that actually reduces your infrastructure footprint instead of just your storage footprint.&lt;/p&gt;
&lt;p&gt;VergeIO runs on commodity hardware. Mix and match server vendors, CPU generations, even Intel and AMD in the same cluster. The software abstracts away the complexity.&lt;/p&gt;
&lt;p&gt;For organizations running AI workloads, you can hard-allocate GPUs to specific VDCs. Only that tenant can use those GPUs—no sharing, no scheduling conflicts.&lt;/p&gt;
&lt;h3 id=&quot;market-reality&quot;&gt;Market Reality&lt;/h3&gt;
&lt;p&gt;VergeIO is growing at roughly one customer every two to three days. The company is based in Ann Arbor, Michigan, self-funded, and cash flow positive. Less than 100 employees. No Silicon Valley funding rounds.&lt;/p&gt;
&lt;p&gt;Their primary competition is VMware (80% of replacements), with some Nutanix and Scale Computing migrations. The company reports 100% customer satisfaction and zero customer losses except for non-payment.&lt;/p&gt;
&lt;p&gt;Notable customers include University of Michigan (their largest research facility), Boeing, Raytheon, and various military installations. The Vietnam airport system runs on VergeOS.&lt;/p&gt;
&lt;h3 id=&quot;the-bottom-line&quot;&gt;The Bottom Line&lt;/h3&gt;
&lt;p&gt;VergeIO represents a genuinely different approach to infrastructure software. Not better versions of existing tools, but a fundamental rethinking of how infrastructure code should be written.&lt;/p&gt;
&lt;p&gt;400,000 lines instead of 30 million. One code base instead of five. One API instead of a dozen integration points.&lt;/p&gt;
&lt;p&gt;For organizations looking to move away from VMware or modernize aging VxRail deployments, VergeIO offers a technically sound alternative. For developers tired of wrestling with orchestrated stacks, it's worth a look.&lt;/p&gt;
&lt;p&gt;The software is there. The architecture makes sense. The pricing model is straightforward. What remains to be seen is whether the market rewards fundamental innovation or sticks with what it knows.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/10842/vergeios-unified-architecture-a-developers-alternative-to-vmware</guid>
<pubDate>Sun, 01 Feb 2026 00:42:58 +0000</pubDate>
</item>
</channel>
</rss>