KVM: Difference between revisions

From Q
Jump to navigation Jump to search
Tgurr (talk | contribs)
No edit summary
Tgurr (talk | contribs)
No edit summary
Line 1: Line 1:
== Description ==
== Description ==
Setting up the Kernel-based Virtual Machine including network configuration and beeing able to create and run new machines as a normal user without requiring root privileges.
Setting up the Kernel-based Virtual Machine including network configuration and being able to create and run new machines as a normal user without requiring root privileges.


== Packages ==
== Packages ==
{{Box Code|emerge kvm -pv|
{{Box Code|paludis --install qemu-kvm --pretend|
<pre>
<pre>
[ebuild  N   ] net-misc/vde-2.2.2  461 kB
* media-libs/libsndfile [N 1.0.20]
[ebuild  N    ] media-sound/alsa-headers-1.0.19  2,829 kB
    Reasons: *net-wireless/bluez-4.39-r2:0::gentoo
[ebuild  N   ] media-libs/alsa-lib-1.0.19  USE="midi python -alisp -debug -doc" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 775 kB
    alsa -jack -minimal -sqlite build_options: -optional_tests -split strip -trace
[ebuild  N   ] app-text/texi2html-1.78  443 kB
    "A C library for reading and writing files containing sampled sound"
[ebuild  N    ] app-emulation/kvm-kmod-85  296 kB
    905.69 kBytes to download
[ebuild  N    ] media-libs/libsdl-1.2.13-r1  USE="X alsa audio joystick opengl video xinerama xv -aalib -arts -custom-cflags -dga -directfb -esd -fbcon -ggi -libcaca -nas -oss -pulseaudio (-svga)" 3,295 kB
* dev-libs/libnl [N 1.1-r2]
[ebuild  N   ] app-emulation/kvm-85-r1  USE="alsa modules ncurses sdl vde -esd -gnutls -havekernel -pulseaudio -test" 4,192 kB
    Reasons: *net-wireless/bluez-4.39-r2:0::gentoo
    build_options: -optional_tests -split strip -trace
    "A library for applications dealing with netlink socket"
    282.16 kBytes to download
* net-wireless/bluez [N 4.39-r2]
    Reasons: *app-emulation/qemu-kvm-0.11.0:0::gentoo
    alsa consolekit cups -debug -doc -gstreamer -old-daemons -test-programs usb build_options: -optional_tests -split strip -trace
    "Bluetooth Tools and System Daemons for Linux"
    974.81 kBytes to download
* media-libs/libsdl [N 1.2.14]
    Reasons: *app-emulation/qemu-kvm-0.11.0:0::gentoo
    X -aalib alsa audio -custom-cflags -dga -directfb -fbcon -ggi joystick -libcaca -nas opengl -oss (-ps3) -pulseaudio (-svga) -tslib video -xinerama xv build_options: -optional_tests -split strip -trace
    "Simple Direct Media Layer"
* net-misc/vde [N 2.2.3]
    Reasons: *app-emulation/qemu-kvm-0.11.0:0::gentoo
    -pcap ssl build_options: -optional_tests -split strip -trace
    "vde2 is a virtual distributed ethernet emulator for emulators like qemu, bochs, and uml."
    511.71 kBytes to download
* app-text/texi2html [N 1.78]
    Reasons: *app-emulation/qemu-kvm-0.11.0:0::gentoo
    build_options: -optional_tests -split strip -trace
    "Perl script that converts Texinfo to HTML"
    442.60 kBytes to download
* app-emulation/qemu-kvm [N 0.11.0] <target>
    alsa bluetooth -esd -gnutls ncurses -pulseaudio -sasl sdl vde QEMU_SOFTMMU_TARGETS: -arm -cris i386 -m68k -mips -mips64 -mips64el -mipsel -ppc -ppc64 -ppcemb -sh4 -sh4eb -sparc x86_64 QEMU_USER_TARGETS: -alpha -arm -armeb -cris i386 -m68k -mips -mips64 -mips64el -mipsel -ppc -ppc64 -ppc64abi32 -sh4 -sh4eb -sparc -sparc32plus -sparc64 x86_64 build_options: -split strip -trace
    "QEMU + Kernel-based Virtual Machine userland tools"
    4.18 MBytes to download
</pre>
</pre>
}}
}}


{{Box Code|emerge iptables bridge-utils usermode-utilities -pv|
{{Box Code|paludis --install iptables bridge-utils usermode-utilities --pretend|
<pre>
<pre>
[ebuild  N    ] net-firewall/iptables-1.4.3.2  423 kB
* net-firewall/iptables [N 1.4.5] <target>
[ebuild  N    ] net-misc/bridge-utils-1.4 32 kB
    ipv6 build_options: -optional_tests -split strip -trace
[ebuild  N   ] sys-fs/fuse-2.7.4  495 kB
    "Linux kernel (2.4+) firewall, NAT and packet mangling tools"
[ebuild  N    ] sys-apps/usermode-utilities-20070815  49 kB
    450.66 kBytes to download
* net-misc/bridge-utils [N 1.4] <target>
    build_options: -optional_tests -split strip -trace
    "Tools for configuring the Linux kernel 802.1d Ethernet Bridge"
    31.89 kBytes to download
* sys-fs/fuse [N 2.8.1]
    Reasons: *sys-apps/usermode-utilities-20070815:0::gentoo
    build_options: -optional_tests -split strip -trace
    "An interface for filesystems implemented in userspace."
    481.32 kBytes to download
* sys-apps/usermode-utilities [N 20070815] <target>
    build_options: -optional_tests -split strip -trace
    "Tools for use with Usermode Linux virtual machines"
    48.98 kBytes to download
</pre>
</pre>
}}
}}


== USE-Flags ==
== USE-Flags ==
{{Box File|/etc/portage/package.use|
{{Box File|/etc/paludis/use.conf|
<pre>
<pre>
app-emulation/kvm -esd vde
*/* QEMU_SOFTMMU_TARGETS: -* i386 x86_64
*/* QEMU_USER_TARGETS: -* i386 x86_64
app-emulation/qemu-kvm vde
</pre>
</pre>
}}
}}


== Installation ==
== Installation ==
{{Root|# emerge kvm}}
{{Root|# paludis --install qemu-kvm}}


== Kernel Configuration ==
== Kernel Configuration ==
Line 89: Line 130:




== Add user to the necessary groups ==
== Add existing user to the necessary groups ==


{{Root|# usermod -a -G kvm,qemu username}}
{{Root|# usermod -a -G kvm,qemu username}}

Revision as of 15:44, 25 November 2009

Description

Setting up the Kernel-based Virtual Machine including network configuration and being able to create and run new machines as a normal user without requiring root privileges.

Packages

Template:Box Code

Template:Box Code

USE-Flags

Template:Box File

Installation

# # paludis --install qemu-kvm

Kernel Configuration

Template:Box Kernel

Network configuration

Template:Box File

# # /etc/init.d/
# # ln -s net.lo net.br0
# # ln -s net.lo net.tap0
# # rc-update add net.br0 default
# # rc-update add net.tap0 default

Template:Box File

# # rc-update add vde default


Add existing user to the necessary groups

# # usermod -a -G kvm,qemu username

Usage

Generate random MAC adresses

$ # echo -n DE:AD:BE:EF ; for i in `seq 1 2` ; do echo -n `echo ":$RANDOM$RANDOM" | cut -n -c -3` ;done


You can always setup new machines in your home directory, but here we assume we have a separate mount-point/partition which we mount at /mnt/kvm.


$ # mkdir -p /mnt/kvm


Template:Box File


# # chown -R root:kvm /mnt/kvm
# # chmod -R g+w /mnt/kvm
$ # kvm-img create -f qcow2 /mnt/kvm/linux-test.img 15G
$ # vdeq kvm /mnt/kvm/linux-test.img -cdrom /dev/cdrom -soundhw es1370 -usb -m 1024 -k de -smp 1 -vga std -localtime -net nic,vlan=0,macaddr=DE:AD:BE:FF:15:33 -net vde,vlan=0,sock=/var/run/vde.ctl


$ # kvm-img create -f qcow2 /mnt/kvm/windows-test.img 15G
$ # vdeq kvm /mnt/kvm/windows-test.img -cdrom /dev/cdrom -soundhw es1370 -usb -m 1024 -k de -smp 1 -vga std -localtime -net nic,vlan=0,macaddr=DE:AD:BE:EF:14:32 -net vde,vlan=0,sock=/var/run/vde.ctl

Once done installing and after enabling the remote desktop access in Windows you can add the -nographic switch and start the kvm machine via a login script for example.

$ # vdeq kvm /mnt/kvm/windows-test.img -nographic -soundhw es1370 -usb -m 1024 -k de -smp 1 -vga std -localtime -net nic,vlan=0,macaddr=DE:AD:BE:EF:14:32 -net vde,vlan=0,sock=/var/run/vde.ctl

You really want to use an RDP session to connect to your Windows Boxes since the mouse movement is horrible slow and laggy when using the SDL client.