Portál AbcLinuxu, 1. května 2025 00:45
Author: Sreenivas Reddy Bathula
Our physical CPU can handle multiple guest operating systems by Virtualization. Guest operating systems can handle their own applications. Virtualization has two options, Paravirtualization and Fullvirtualization (1).
Paravirtualization is fundamentally faster than full virtualization, with the exception of the user space implementation in UML type. OS-level virtualization is yet faster than paravirtualization, it can achieve native speed. Virtual machines performance can vary wildly depending on workload. Memory and CPU hotplug allows one to run more virtual machines on a system simultaneously, adjusting the amount of memory allocated to each guest depending on load.
Full virtualization performance in KVM and Xen is largely limited by the overhead of trap & emulate. Emulating multiple instructions at once at the time of a trap should bring it up to speed with VMware. Qemu can emulate different guest architectures. Qemu also has the distinction of being the only full virtualization technology that can run without root privileges. Parts of Qemu are used in the full virtualization implementations of Xen and KVM (2). In these days latest processors like Intel and AMD has hardware support for virtualization.
Xen is a virtual machine monitor for X86, it’s an open source software supports multiple guest operating systems. Xen is released under the terms of the GNU General Public License. Xen become popular recently, it came up with alternative to VMWare. Xen supports almost all traditional Linux kernels very well (3).
Steps for Xen Kernel Virtualization:
$ yum update $ yum install xen $ yum install kernel-xen0 $ yum install kernel-xenU
title Xen 2.0 / XenLinux 2.6.9 kernel /boot/xen.gz dom0_mem=131072 module /boot/vmlinuz-2.6.9-xen0 root=/dev/hda1 ro console=tty0
HOSTA:/etc/xen/scripts # xm list Name Id Mem(MB) CPU State Time(s) Console Domain-0 0 123 0 r---- 41.2
pvcreate /dev/sda5 $ vgcreate vm_volumes /dev/sda5 $ vgchange -a y vm_volumes $ lvcreate -L4096 -nroot.dokeos vm_volumes $ lvcreate -L2048 -nvar.dokeos vm_volumes $ lvcreate -L256 -nswap.dokeos vm_volumes $ lvcreate -L1024 -nwww.dokeos vm_volumes $ yum --installroot=/vhosts/root.dokeos/ -y groupinstall Base $ MAKEDEV -d /path/dev -x console $ MAKEDEV -d /path/dev -x null $ MAKEDEV -d /path/dev -x zero
root@xen xen]# cat dokeos.x-tend.be kernel = "/boot/vmlinuz-2.6.11-1.1366_FC4xenU" memory = 128 name = "dokeos.x-tend.be" nics = 1 extra = "selinux=0 3" vif = ['ip = "10.0.11.13", bridge=xen-br0'] disk = ['phy:vm_volumes/root.dokeos,sda1,w' ,'phy:vm_volumes/var.dokeos,sda3,w' ,'phy:vm_volumes/www.dokeos,sda4,w' ,'phy:vm_volumes/swap.dokeos,sda2,w' ] root = "/dev/sda1 ro" Then run [root@xen xen]# cat dokeos.x-tend.be kernel = "/boot/vmlinuz-2.6.11-1.1366_FC4xenU" memory = 128 name = "dokeos.x-tend.be" nics = 1 extra = "selinux=0 3" vif = ['ip = "10.0.11.13", bridge=xen-br0'] disk = ['phy:vm_volumes/root.dokeos,sda1,w' ,'phy:vm_volumes/var.dokeos,sda3,w' ,'phy:vm_volumes/www.dokeos,sda4,w' ,'phy:vm_volumes/swap.dokeos,sda2,w' ] root = "/dev/sda1 ro"
$ xm create config file
After booting xen virtual machine will be ready.
KVM can start with hypervisor (Process of host operating system), it needs hardware support. It works like an independent Linux kernel, which can run any application. Memory virtualized through KVM. Input/Output is virtualized through QEMU(4).
$ qemu-img create -f qcow vm-disk.img 4G
$ kvm -no-acpi -m 384 -cdrom guestos.iso -hda vm-disk.img -boot d
int main() { void *vm_mem; kvm = kvm_init(&test_callbacks, 0); if (!kvm) { fprintf(stderr, "kvm_init failed\n"); return 1; } if (kvm_create(kvm, 128 * 1024 * 1024, &vm_mem) < 0) { kvm_finalize(kvm); fprintf(stderr, "kvm_create failed\n"); return 1; } if (ac > 1) if (strcmp(av[1], "-32") != 0) load_file(vm_mem + 0xf0000, av[1]); else enter_32(kvm); if (ac > 2) load_file(vm_mem + 0x100000, av[2]); kvm_show_regs(kvm, 0); kvm_run(kvm, 0); return 0; }
Overall KVM is the best but it needs few changes regarding changing kernel to hypervisor. Advantages are it can use kernel effectively and it has independent hypervisor. Drawbacks are it requires special processors and user space.
Tiskni
Sdílej:
Mezi Exhaustive a Informative by se hodil jeste jeden stupen.
Par radku treba o KVM ma k Exhaustive daleko, ale zaroven to neni jenom informativni zmineni par prikazu.
Vďaka za podnet, ale podľa mňa 3 voľby stačia (aj tak je bežných len pár hlasov). Na hodnotenie študentov to nemá žiaden priamy vplyv.
Ony tam chybi docela dulezite informace jako treba sprava Xenovych stroju pomoci xm a neco podobneho u kvm.
Nekdy proste masina vytuhne, nekdy je ji potreba zrusit a tak.
To znie zaujímavo, budúci rok by som to zadal ako tému :)
Jaky je smysl toho co popisujes?
Protoze treba takove opensuse nema s rozbehanim problem. Proste nainstalujes xen, ten se sam prida do grubu, nabootujes jej a pres vm-install (ktery jde pouzit i jako neinteraktivni s parametrama) nainstalujes systemy dle libosti.
Takhle uz jsem snad nainstaloval vic systemu nez normalnich nevirtualizovanych.
A dalsi skvela vec je v opensuse autoyast. Proste si nechas na konci instalace klonovat system do xml konfiguraku a pri dalsi instalaci jenom predhodis ten konfigurak vm-installu. Cili napises jeden prikaz a jenom pockas na dokonceni instalace. Bez jedineho kliknuti.
A měl jste kořenový souborový systém na LVM nad softwarovým RAIDem a obraz jádra taky na RAIDem? A všechno (SETUP, zavaděč, Xen, Dom0) řešené přes sériovou konzoli?
Pokud to všechno GRUB/OpenSUSE už zvládne, pak je to dobré. Drobný detail je, že já jsem to dělal na Gentoo.
Smyslem je osvětlit, jak věci fungují. Ne ukázat na tajemné tlačítko instalátoru jedné distribuce.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.