Logo Atlas
  • Home
  • About Me
  • Skills
  • Education
  • Recent Posts
  • Certifications
  • Posts
  • English
    Español English
  • Dark Theme
    Light Theme Dark Theme System Theme
Logo Inverted Logo
  • Posts
  • CI / CD Jenkins
    • CI / CD practice with Jenkins
    • Workshop 1 Ortho-rector of markdown documents (test)
    • Workshop 2 Valid HTML5 check and surge.sh deployment (test and deploy)
    • Workshop 3 Continuous integration of django application (Test)
  • Database
    • Install MariaDB in Debian
    • Interconnection of database servers
    • Oracle 19c installation under Debian 12
    • PostgreSQL installation in Debian 12
    • Remote access configuration in Oracle
    • Remote access in MariaDB
  • Docker
    • Docker Compose Installation on Ubuntu 24
    • Docker Installation on Ubuntu 24
    • Workshop 1 Storage and networks in Docker
    • Workshop 2 Multicontainer Scenarios in Docker
    • Workshop 3 Image creation Docker
  • Firewall
    • Fortinet CLI
    • Perimetral with Fortinet I
    • Perimetral with Fortinet II
    • Perimetral with Nftables I
    • Perimetral with Nftables II
  • Linux Drivers
    • Drivers Nvidia
    • How to choose which graph to use on my laptop with Linux
  • Networks
    • Android GNS3-KVM
    • Basic IPv6 scenario
    • GNS3 and Wireshark installation
    • GNS3 installation in Debian 12
    • GNS3 switch configuration
    • IPV6 Tunnels
    • NAT in Cisco and Linux
    • Network monitoring commands
    • OpenStack routing
    • Protocol ARP
    • Underworld
    • Underworld evolution
  • Observability
    • Metrics
      • Prometheus
        • Installation of Prometheus with Docker Compose and Node Exporter on Debian 12
  • Security
    • Forensic computer
    • HTTPS
  • Services
    • Apache
    • DHCP
      • Installation and Configuration of a DHCP Server on Linux
    • DNS
      • BIND9
        • Configuring a Slave DNS Server with BIND9
        • Installation and Configuration of BIND9 on Linux
      • DNSMASQ
        • Local Server with DNSMasq
    • FTP
    • NAT with iptables
    • SSH
  • Systems
    • Active Directory in Ubuntu
    • Centralized collection of logs journald
    • Compilations in LINUX
      • Compilation of a C-program using a Makefile
      • Compilation of a kernel
    • Creation of an automated installation system
    • Install and configure samba in Debian
    • Linux Command
      • Kernel parameter modification exercises
      • Linux processes
      • Module management exercises
      • Package management
      • Packaging and compressors
      • Paid management exercises
      • Task programming
    • Migration in Linnux
      • File system
      • Migtation from CentOS stream 8 to CentOS stream 9
      • Systemd elimination
      • Transformation instance cloud
    • NFS in Debian
    • SELinux activation configuration
    • Share resources in Windows
    • Ssh service in Windows
    • Storage Spaces in Windows Server
  • Virtualization (KVM on Linux)
    • Introduction to virtualization with KVM
      • Virtualization basics in Linux
      • Types of hypervisors
      • KVM architecture and operation
    • Installation and configuration
      • Install KVM and libvirt
      • Validate KVM host
    • Virtual machine management
      • Create VM with virt-install
      • VM components
      • Manage with virsh
      • Clone and rename VMs
      • Expand VM resources
      • Snapshots in KVM
      • Virtual machine templates
    • Networking in KVM
      • Network types in KVM
      • Create and configure private virtual networks
      • Create bridge interface
    • Storage in KVM
      • Introduction to storage
      • Managing pools
      • Volumes (virsh)
      • Resizing disks (VMs)
  • VPN
    • OpenVPN and Wireguard Comparative
    • OpenVPN remote access
    • Remote access Ipsec StrongSwan
    • Site-to-Site IPsec Cisco
    • Site-to-Site IPsec Fortinet
    • Site-to-Site OpenVPN
    • Site-to-Site Wireguard
    • Wireguard remote access
  • Web applications
    • LAMP stack installation
    • LEMP stack installation
    • WordPress LAMP
    • WordPress LEMP
Hero Image
Introduction to storage in KVM/libvirt

Storage is a foundational part of virtualization: it determines how and where virtual machine disks are stored, how snapshots are handled, and what performance and protection options are available. In the KVM/libvirt ecosystem storage is organized around two basic concepts: Storage pools: logical groupings that represent a storage source (for example, a directory, an LVM volume group, an iSCSI target or a Ceph pool). Libvirt exposes and manages these pools to simplify storage usage for VMs. Storage volumes: the units inside a pool that act as virtual disks for guests. Types of pools Libvirt supports several pool types. A practical summary:

  • KVM
  • Virtualization
  • Libvirt
  • Storage
Saturday, October 25, 2025 | 4 minutes Read
Hero Image
Network types in KVM (NAT, isolated and bridged)

In KVM, network virtualization is mainly managed through libvirt, which lets us create and administer various kinds of virtual networks to which our virtual machines connect. Understanding the available network types is key to properly configuring guest connectivity and the host interaction. There are two broad categories of networks in KVM: Private virtual networks: Internal networks isolated from the outside, managed via virtual bridges created by libvirt. Bridged networks: Networks that connect virtual machines directly to the host’s physical network. Private virtual networks These networks are created on the host and provide a controlled environment for virtual machines. They fall into three main types:

  • KVM
  • Virtualization
  • Libvirt
  • Networking
  • Linux
Saturday, October 18, 2025 | 3 minutes Read
Hero Image
How to create a virtual machine with virt-install

After installing KVM on your Ubuntu or Debian system, the next step is to create a virtual machine using the virt-install command-line tool. Check existing virtual machines Before creating a new VM, check if there are any existing ones: sudo virsh list --all If no machines exist, the list will be empty. Create a virtual machine with virt-install The virt-install command allows you to specify all the VM’s properties. For example:

  • Virtualization
  • Linux
  • KVM
  • VM
  • Hypervisor
  • Ubuntu
  • Debian
Monday, October 13, 2025 | 2 minutes Read
Hero Image
Basic Virtualization Concepts in Linux

If you have ever wondered how multiple “machines” can run inside a single physical machine, the answer is virtualization. Let’s explain it in a simple way. What is virtualization? Virtualization is a technology that allows you to create digital versions of machines inside a real machine. Each of these “virtual machines” is called a virtual machine (VM) and can run its own operating system and applications, just like an independent computer.

  • Virtualization
  • Linux
  • KVM
  • VM
Monday, October 13, 2025 | 3 minutes Read
Hero Image
How to install KVM, QEMU and libvirt on Linux

To install KVM on Ubuntu or Debian, you need to prepare the system with the required packages, verify hardware virtualization support, and authorize users to run virtual machines. Below are the steps to install KVM on Ubuntu 24.04 (Noble Numbat) or recent Debian releases. Step 1: Update the system Before installing KVM, update your package repository information: sudo apt update Step 2: Check virtualization support 2.1 Verify CPU compatibility Check if your CPU supports hardware virtualization:

  • Virtualization
  • Linux
  • KVM
  • VM
  • Hypervisor
  • Ubuntu
  • Debian
Monday, October 13, 2025 | 2 minutes Read
Hero Image
How to manage storage pools

This post answers the following questions and provides practical examples: What is a storage pool? How is a pool created and what forms can it take? Storage in KVM/libvirt is organized using “storage pools” and “storage volumes”. In this article we explain what a pool is, why pools are used, and how to manage them with virsh or XML definitions. We include examples, practical recommendations, and notes about LVM-based pools.

  • KVM
  • Virtualization
  • Libvirt
  • Storage
  • Pools
Saturday, October 25, 2025 | 5 minutes Read
Hero Image
How to create and configure private virtual networks

In this step-by-step guide you’ll create three types of virtual networks managed by libvirt and learn simple ways to verify them: NAT (Network Address Translation) Isolated Very isolated (L2 only) We’ll use virsh and XML definitions (you can do the same with virt-manager, but we’ll focus on the CLI). After each creation, there’s a quick check to confirm everything looks good. Before you start: quick requirements Packages: libvirt-daemon and libvirt-daemon-system (or your distro equivalents). Optional: virt-manager. Run commands as root or with sudo. Service: systemctl status libvirtd should be active. See current networks: virsh net-list --all Persistent config paths: /etc/libvirt/qemu/networks/ Tip: avoid subnet conflicts; choose ranges that don’t collide with your physical LAN or other libvirt networks.

  • KVM
  • Virtualization
  • Libvirt
  • Networking
  • Linux
Saturday, October 18, 2025 | 4 minutes Read
Hero Image
How to validate the KVM host installation

Before creating and running virtual machines with KVM, it’s essential to validate that the host meets the required hardware and software capabilities to ensure optimal performance. This guide describes how to verify system capabilities using tools such as virt-host-validate and virsh. 1. Validating CPU virtualization support KVM requires processors with hardware virtualization extensions: Intel: VT-x AMD: AMD-V To check if your CPU is compatible, run: grep --color -Ew 'svm|vmx|lm' /proc/cpuinfo vmx → Intel CPU with VT-x svm → AMD CPU with AMD-V lm → 64-bit support If your CPU lacks these extensions, only CPU emulation will be available and performance will be significantly reduced.

  • Virtualization
  • Linux
  • KVM
  • VM
  • Hypervisor
  • Ubuntu
  • Debian
Monday, October 13, 2025 | 2 minutes Read
Hero Image
Key components of a virtual machine in KVM

In KVM (Kernel-based Virtual Machine), a virtual machine is composed of several elements that interact to emulate a complete hardware environment. Understanding each component helps you manage, troubleshoot, and optimize your VMs more efficiently. 1. Main components Component Description Virtual CPU (vCPU) Cores assigned from the physical host to the guest. Defined with --vcpus when creating the VM. Memory (RAM) Amount of memory assigned. Configured with --ram or can be hot-adjusted with virsh setmem. Virtual disk Storage file (.qcow2, .raw, etc.) used as the guest disk. Managed with virsh vol-* or virt-manager. Network interface Virtual connection (usually virtio or e1000) attached to a libvirt network (default, br0, etc.). Graphics device / console VNC, SPICE, or text mode (no graphical console). Controllable with --graphics or virsh vncdisplay. Firmware / BIOS / UEFI Defines the boot mode (traditional BIOS or UEFI with OVMF). Additional devices CD-ROM, USB controllers, serial channels, sound interfaces, etc. 2. Essential commands to retrieve VM information Once the VM is created, you can use virsh to inspect and manage all its details.

  • Virtualization
  • Linux
  • KVM
  • VM
  • Hypervisor
  • Ubuntu
  • Debian
Monday, October 13, 2025 | 3 minutes Read
Hero Image
Types of hypervisors in Linux

What is a hypervisor? A hypervisor, also known as a Virtual Machine Monitor (VMM), is a software virtualization layer that allows you to create and run multiple virtual machines (VMs) on a single server, as well as run different operating systems in isolation. The physical server running the hypervisor is called the host machine, while each individual VM is called a guest machine. The term “hypervisor” was coined in the 1970s based on the concept of a supervisor in an operating system kernel. By adding the prefix “hyper-”, it is considered the supervisor of the supervisors.

  • Virtualization
  • Linux
  • KVM
  • VM
  • Hypervisor
Monday, October 13, 2025 | 3 minutes Read
Hero Image
How to manage storage volumes with virsh

Short: examples of using the libvirt API (virsh vol-*) to manage volumes inside storage pools and notes about backend-specific behavior. Managing storage volumes with virsh In this section we’ll look at storage volume management using libvirt’s API (the virsh tool). We will use pools of type dir (image files on disk), although many operations are applicable to other backends; differences are noted where relevant. Pools and volumes: quick concept A “volume” in libvirt is the storage unit created inside a pool. In dir and fs pools volumes are files (for example qcow2, raw); in logical pools they are LVM logical volumes; in disk pools they can map to partitions; and in networked backends (Gluster, RBD, iSCSI) creation and management may require backend-specific tools.

  • KVM
  • Virtualization
  • Libvirt
  • Storage
  • Volumes
Saturday, October 25, 2025 | 6 minutes Read
Hero Image
How to create a bridge interface on the KVM host

A bridge on the host allows your virtual machines to connect directly to the physical network as if they were another machine on the LAN. It’s the basis for “bridged networks” covered in the network types section. Important: if you perform these changes over remote SSH you may lose connectivity. Whenever possible use local/console access or have a recovery plan (KVM/IPMI, a second interface, maintenance window, etc.). 0. Preparation: identify your physical interface and back up configs Identify the physical interface connected to your LAN/Internet (for example: enp1s0, enp3s0, eth0): ip -br link ip -br addr Back up your network configuration files before changing anything — use the command appropriate to your setup: sudo cp -a /etc/netplan /etc/netplan.bak.$(date +%F) 2>/dev/null sudo cp -a /etc/network/interfaces /etc/network/interfaces.bak.$(date +%F) 2>/dev/null Important note: the IP must live on the bridge (br0), not on the physical interface. The physical interface will be left without an IP and become a slave of the bridge. Option A: Netplan (modern Ubuntu/Debian) Applies to systems using Netplan (Ubuntu Server ≥ 18.04, Debian when migrated). The most common renderer is networkd, but NetworkManager can also be used. Here we configure br0 and enslave the physical interface to the bridge.

  • KVM
  • Virtualization
  • Libvirt
  • Networking
  • Linux
  • Bridge
Saturday, October 18, 2025 | 5 minutes Read
  • ««
  • «
  • 1
  • 2
  • »
  • »»
Navigation
  • About Me
  • Skills
  • Education
  • Recent Posts
  • Certifications
Contact me:
  • contacto@javiercd.es
  • javierasping
  • Francisco Javier Cruces Doval

Liability Notice: This theme is under MIT license. So, you can use it for non-commercial, commercial, or private uses. You can modify or distribute the theme without requiring any permission from the theme author. However, the theme author does not provide any warranty or takes any liability for any issue with the theme.


Toha Theme Logo Toha
© 2023 Copyright.
Powered by Hugo Logo