Blog· Page 2 of 46
Migrate a KVM VM to Another Host
Preflight CPU, networks, storage paths, and destination capacity; Shut down and transfer XML plus all writable disks; Start only the destination copy; Verify identity, disks, networks, data, and a tested rollback path.
Operate and Maintain a KVM HA Cluster
Patch and reboot one node through standby or maintenance mode; Return workloads and verify placement intentionally; Replace or rebuild one nested host; Review quorum, resource, storage, fencing, and failure history before final sign-off.
Recover a Broken KVM Virtual Machine
Reproduce a safe domain start failure; Identify the first causal error across virsh, journal, and QEMU logs; Repair only the bad definition or path; Start the original guest and verify both disks and networks.
Remove the KVM HA Storage Single Point of Failure
Replace the single storage path with the selected redundant design; Prove identical safe access from every compute node; Fail one storage path or node while the workload runs; Validate data integrity and document remaining correlated failures.
Repair a KVM VM That Will Not Boot
Create a reversible guest boot failure; Attach rescue media or mount an overlay-backed disk offline; Repair the filesystem or configuration; Boot normally and validate the repaired service.
Build Repeatable KVM VMs With cloud-init
Build a reusable base without embedded secrets; Generate unique NoCloud identity and network data; Create two guests from independent overlays; Prove unique UUIDs, MACs, hostnames, machine IDs, SSH keys, and addresses.
Create an Ubuntu VM with KVM, virt-install, and cloud-init (2026)
Create a reusable Ubuntu 24.04 KVM guest from a cloud image with virt-install, cloud-init, private networking, QEMU guest agent, SSH, and a serial console.
Install KVM on Ubuntu: Complete libvirt Host Setup (2026)
Install KVM, QEMU, libvirt, virsh, and virt-install on Ubuntu, then configure permissions, private networking, and validate the finished virtualization host.
KVM Networking: Custom NAT Network with Static DHCP
Create a persistent libvirt NAT network, reserve a predictable DHCP address, attach a second virtio NIC, configure Netplan, and control route priority.
KVM Storage Pools and Volumes: Attach and Expand a Disk
Create a libvirt storage pool and qcow2 volume, attach it to a running KVM guest, format it, then expand the active disk and ext4 filesystem safely.
KVM Virtualization Series: Build and Manage a Linux Hypervisor Lab
Follow the complete InventiveHQ KVM series from host installation through virtual machines, storage, networking, backups, performance tuning, GPU passthrough, and migration.
Virsh Commands: Complete KVM & libvirt Cheat Sheet (2026)
Use virsh to list, inspect, start, stop, configure, and safely remove KVM virtual machines. Includes tested local and remote libvirt commands.
Why Is the Keyboard QWERTY? The Real History Behind the Myth
The story that QWERTY was designed to slow typists down is one of tech's most repeated myths. The real history involves typebars, telegraph operators, and a century of path dependence.
Why iDRAC6 Virtual Media Is Broken on Modern Macs (And What to Do Instead)
The Dell R610's iDRAC6 virtual media requires Java 6-era native libraries that cannot run on Apple Silicon or 64-bit-only Intel Macs. Here is why every workaround fails and how PXE boot sidesteps the whole problem.
PXE Boot Ubuntu on a Dell R610 Using a MacBook as the TFTP/HTTP Server
Turn your MacBook into a PXE boot server to install Ubuntu on old server hardware that refuses to USB boot. A complete walkthrough using macOS TFTP, Apache, and a Ubiquiti Dream Machine for DHCP.

The Context-Length Tax: What Going 2K to 32K Actually Costs
Going from 2K to 32K context cost essentially 0 tok/s but +1.7 GB of VRAM. We swept Qwen2.5-Coder-7B across five context sizes — the tax is memory, not speed.

More CPU Threads Made My LLM Slower: A Thread-Scaling Test
Throughput peaked near the 6 physical cores on an i7-8700, and 12 threads ran slower than 8. Here's why memory bandwidth — not core count — decides how fast a CPU runs a local model.

Flash Attention in llama.cpp: -fa Is Free Because It's Already On
We swept llama.cpp's -fa flag across 4K, 16K, and 32K context on an RTX 5060 Ti. Speed and VRAM were identical on and off — because this build already defaults flash attention on.

How Low Can You Quantize a GGUF Model Before Quality Breaks?
We swept Qwen2.5-Coder-7B from Q2 to Q8 on an RTX 5060 Ti. Output fidelity goes 21% at Q2, 57% at Q4, 80% at Q6 — the cliff is below Q4, and the sweet spot is Q4–Q5.

I Capped My GPU to 150W and Barely Lost Any Speed
We cut an RTX 5060 Ti's power limit by 17% and lost essentially zero tokens per second while gaining 16% efficiency. Local LLM decoding is memory-bandwidth-bound, not compute-bound — so watts are mostly wasted.

KV-Cache Quantization: The q4_0 Cliff Your Logs Won't Warn You About
We benchmarked f16 vs q8_0 vs q4_0 KV caches on the same model. q8_0 KV is nearly lossless (81.6% similar). q4_0 KV wrecks output quality (8.3%) while saving VRAM — and your throughput dashboard stays green the whole time.

Local LLM Benchmarks: 12 Findings From Consumer Hardware
NVIDIA publishes its inference wins on 8× DGX B300s. Almost nobody has those. So we ran the same ideas on a single consumer RTX 5060 Ti, a 2017 GTX 1080 Ti, and a CPU — and measured what actually happens. Here are all 12 experiments.

MoE on CPU: 13B-Class Answers at 3B Speed
A 30B-A3B Mixture-of-Experts model runs at dense-3B speed on an 8-year-old i7 CPU (10.6 tok/s) yet scores 8/10 on our graded set versus the 3B's 1/10. Here's why, and how to size your own box for it.

Is llama.cpp Faster Than Ollama? Measured on Two Machines
Yes — by 10% on an RTX 5060 Ti and 14% on an M3 Max. We benchmarked raw llama.cpp against Ollama and LM Studio on identical models and hardware, and measured exactly what each wrapper's convenience layer costs in tokens per second.