Posts for: #virtualization

VirtIO VSOCK MSG_ZEROCOPY Coming to Linux 6.7: Enhanced Virtual Machine Performance

Phoronix reports that the first part of MSG_ZEROCOPY preparations for the VirtIO-Vsock driver has been queued into net-next, with plans for introduction in the Linux 6.7 kernel. This feature aims to improve performance within virtual machines by enabling message zero-copy support for the VirtIO/Vsock code. By allowing for more zero-copy of buffers, rather than creating extra copies on transmissions, this feature can lead to significant efficiency gains. Benchmarks on the patch series have shown impressive gains, particularly for buffer sizes at 32KB and larger. This development is of particular interest for home labs and virtual machine environments, as it has the potential to enhance virtual machine performance.

Source: Phoronix.

Cloud Hypervisor Releases Version v35.0 of Open Source Virtual Machine Monitor

Cloud Hypervisor, an open-source Virtual Machine Monitor (VMM), has announced the release of version v35.0. This VMM runs on top of the KVM hypervisor and the Microsoft Hypervisor (MSHV). The primary focus of the Cloud Hypervisor project is to enable the running of modern cloud workloads on specific, common hardware architectures. Cloud workloads, in this context, refer to those run by customers within a Cloud Service Provider. This includes modern operating systems with most I/O handled by paravirtualized devices (such as virtio), no requirement for legacy devices, and 64-bit CPUs.

Implemented in Rust and based on the Rust VMM crates, Cloud Hypervisor offers several user-visible changes and improvements in this release. Some of the notable updates include:

  • virtio-vsock Support for Linux Guest Kernel v6.3+: With the kernel version 6.3 and newer, a vsock packet can now be included in a single descriptor, rather than being split over two descriptors. The virtio-vsock implementation in Cloud Hypervisor now supports both situations.

  • User Specified Serial Number for virtio-block: A new option called serial has been added to the --block command, allowing users to specify a serial number for block devices that will be visible to the guest.

  • vCPU TSC Frequency Included in Migration State: This enhancement ensures successful migration between hosts with different TSC frequencies when the guest is running with TSC as the source of timekeeping.

In addition to these improvements, the release also includes several bug fixes, addressing issues like concurrent CPU resizing, handling of APIC EOI messages for MSHV, memory offset calculations, spell check, block device alignment, and latency counter for block devices.

The release of version v35.0 of Cloud Hypervisor is the result of contributions from various contributors, including Alyssa Ross, Anatol Belski, Bo Chen, Christian Blichmann, Jianyong Wu, Jinank Jain, Julian Stecklina, Omer Faruk Bayram, Philipp Schuster, Rob Bradford, Ruslan Mstoi, Thomas Barrett, Wei Liu, Yi Wang, and zhongbingnan.

For more details about the release and the Cloud Hypervisor project, visit the Cloud Hypervisor v35.0 release page.

ESXi Compatibility on Lenovo ThinkStation P3 Tiny

Source: WilliamLam.com

Earlier this year, William Lam from WilliamLam.com discovered the Lenovo ThinkStation P3 Tiny, a compact system with a lot of potential. Lam, a tech journalist and blogger, was intrigued by the system and was particularly interested in its suitability for VMware deployments, especially with the recent announcement of VMware Edge Cloud Orchestrator (VECO) and Project Keswick.

The Lenovo ThinkStation P3 Tiny offers a range of Intel CPU options, including Core i9, i7, and i5. This is notable because it’s uncommon to find an Intel Core i9 in such a small form factor system. The system also supports DDR5 4800 SO-DIMM memory, although it does not support the new non-binary DDR5 48GB memory modules. The P3 Tiny has a compact form factor, measuring 179 x 182.9 x 37mm, making it smaller than a Supermicro E200-8D but slightly larger than an Intel NUC.

In terms of networking, the P3 Tiny comes with a single Intel I219-LM (2.5GbE) Ethernet port. However, Lenovo offers optional Ethernet-based add-ons that can provide additional networking capabilities. The system also has a Thunderbolt 4 port, which can be used to add faster networking options.

For storage, the P3 Tiny supports up to 2 x M.2 PCIe x4 Gen 4 (2280) drives. These drives are easily accessible by removing a single screw from the back of the system. It’s also possible to add additional storage using the low-profile expansion slot and the Thunderbolt 4 port.

Another notable feature of the P3 Tiny is its graphics capabilities. The system comes with built-in Intel integrated graphics (iGPU), but it also has a low-profile expansion slot that can accommodate an additional NVIDIA discrete GPU (dGPU).

Lam confirmed that the latest release of ESXi 8.0 Update 1 and ESXi 8.0 Update 2 can be installed on the P3 Tiny without any issues. He also provided instructions for disabling E-cores within the BIOS to prevent ESXi from encountering errors related to non-uniform Intel CPU cores.

Overall, the Lenovo ThinkStation P3 Tiny is a powerful and compact system that is an interesting option for servers and home labs. Its small form factor, networking capabilities, storage options, and graphics capabilities make it a versatile choice for various use cases, including edge deployments and virtualization projects.

Source: WilliamLam.com.

Run NixOS using Vagrant

Run NixOS using Vagrant
In this tutorial, we’ll create a NixOS virtual machine using Vagrant. This setup can be helpful to set up an environment for learning NixOS. NixOS is a Linux distribution declaratively configured using a specification written in the Nix expression language describing the system’s desired state. It supports automatic upgrades and rollbacks. If something goes wrong, just revert to the working state. NixOS runs on common computers and architectures and can be used both on laptops or workstations with a desktop environment or on servers, both x86_64 and ARM64, like on the Raspberry Pi 4.
Read more →

Install vagrant-libvirt on macOS

Install vagrant-libvirt on macOS
In this tutorial we’ll install vagrant-libvirt on a Mac running macOS (tested on High Sierra and Mojave). vagrant-libvirt is a plugin for Vagrant that allows you to interact with libvirt virtualization hosts, local or remote. Vagrant can be used to build and manage virtual machines and is useful for development. Vagrant runs most platforms, including the MacBook Air and Raspberry Pi. Libvirt is a “toolkit to manage virtualization platforms” and supports a variety of virtualization backends, including, but not limited to, KVM, QEMU, Xen, VMWare, and LXC.
Read more →

Run macOS Mojave using Vagrant

Run macOS Mojave using Vagrant
This tutorial will guide you through the process of running macOS Mojave in a VM using Vagrant. I’ve mainly used this for the development and testing of Ansible playbooks targeted at configuring headless app builders for iOS devices and Macs. Please note that this only applies to Intel-based Macs. Apple Silicon-based Macs have not been tested. This tutorial assumes you have a working installation of macOS Mojave or later running on a Mac and that you have VirtualBox and the VirtualBox Extension Pack installed.
Read more →