QEMU

QEMU(Quick EMUlator)是一个通用的开源虚拟主机软件,通常和Type-I hypervisor如KVM(Kernel-based Virtual Machine)或Xen的加速器结合使用。如果没有使用加速器,QEMU就完全运行在用户空间,使用自己的二进制转换TCG(微代码生成器)。单纯使用QEMU而不使用加速器是非常低效和缓慢的。

安装

在Gentoo Linux上安装部署KVM

BIOS和UEFI firmware

要使用KVM,处理器必须支持Vt-xAMD-V(两者分别是Intel和AMD的虚拟化技术,允许在处理器中运行多个操作系统)。

要检查硬件的虚拟化支持功能

grep --color -E "vmx|svm" /proc/cpuinfo

当系统支持KVM,在设备文件目录有/dev/kvm设备

内核

在内核选项中激活以下配置

[*] Virtualization  --->
    <*>   Kernel-based Virtual Machine (KVM) support
    <*>   KVM for Intel processors support

如果是AMD处理器,则激活 <*> KVM for Intel processors support

在USE flag中建议使用能够vhost-net配置

[*] Virtualization  --->
    <*>   Host kernel accelerator for virtio net

可选的高级网络支持

Device Drivers  --->
    [*] Network device support  --->
        [*]   Network core driver support
        <*>   Universal TUN/TAP device driver support

需要激活802.1d以太网桥支持

[*] Networking support  --->
        Networking options  --->
            <*> The IPv6 protocol
            <*> 802.1d Ethernet Bridging

在USE flag中需要激活python来支持文件捕获功能

Kernel hacking  --->
        Compile-time checks and compiler options  --->
            [*] Debug Filesystem

在使用ext4文件系统,激活filecaps USE flag来支持stats

File systems  --->
    <*> The Extended 4 (ext4) filesystem
    [*]   Ext4 Security Labels

USE flags

USE flag 说明 范围
accessibility 支持使用brltty的braille显示 本地
aio 支持Linux异步IO 本地
alsa 支持声音模拟的alsa输出 本地
bluetooth 支持蓝牙 全局
caps 使用Linux库来控制权限 全局
curl 支持通过HTTP或HTTPS来设置ISOs/ -cdrom 本地
debug 激活debug的扩展 全局

详细USE flag见原文QEMU

安装

emerge --ask app-emulation/qemu

配置

网络

IPv6

有关IPv6网络参考IPv6 subarticle

权限

要运行一个KVM加速的虚拟机而无需登录root帐号,需要将普通用户帐号添加到kvm组,执行以下命令将<username>替换成相应的用户名

gpasswd -a <username> kvm

Front ends(前端)

为了方便使用QEMU,可以使用一些前端工具来维护

程序 软件包 官方网站 说明
AQEMU app-emulation/aqemu http://sourceforge.net/projects/aqemu 图形界面管理QEMU和KVM,使用Qt4编写
libvirt app-emulation/libvirt http://www.libvirt.org C编写的维护虚拟机的工具
[QtEmu app-emulation/qtemu http://qtemu.sourceforge.net/ 图形界面管理QEMU,使用Qt4编写
virt-manager app-emulation/virt-manager http://virt-manager.org/ 管理虚拟机的图形工具

kvm: already loaded the other module

如果遇到启动时候报错kvm: already loaded the other module则表明内核中同时激活了Intel和AMD的虚拟机设置。要修正这个错误,可以将Intel和AMD的虚拟机支持编译成内核,或者根据系统的处理器类型指定特定的虚拟机支持(CONFIG_KVM_INTELCONFIG_KVM_AMD)。

参考

results matching ""

    No results matching ""