qemu/kvm/qemu-kvm/virsh的区别

转自:http://www.2cto.com/os/201305/209596.html

qemu是一套虚拟机管理系统,kqemu是qemu的加速器,可以认为是qemu的一个插件;qemu可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器;

kvm是另外的一套虚拟机管理系统,包括内核虚拟构架和处理器相关模块,其借用了 quem 其它一些组件,kvm的非内核部分是由qemu实现的;加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具

qemu-kvm:kvm是linux的一个模块,管理和创建完整的虚拟机需要相应的一些管理工具,由于kvm是在qemu的基础上开发的,KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具QEMU-KVM。

libvirt,virt-manager,virsh:由于qemu-kvm的效率及通用性问题,有组织开发了libvirt用于虚拟机的管理,带有一套基于文本的虚拟机的管理工具--virsh,以及一套用户渴望的图形界面管理工具--virt-manager。libvirt是用python语言写的通用的API,不仅可以管理KVM,也可用于管理XEN;

--------------------------------------------

一个网页说明KVM和QEMU的区别,说的比较宏观,还比较好,大概记录一下:

Qemu:

是一个完整的可以单独运行的软件,它可以用来模拟机器,非常灵活和可移植。它主要通过一个特殊的‘重编译器‘将为特定处理器编写二进制代码转换为另一种。(也就是,在PPC mac上面运行MIPS代码,或者在X86 PC上运行ARM代码)

KQemu:

当源和目标代码有同样的架构的时候(就像最普通的情况 x86运行在x86上面),同样需要解析代码去出去任

何‘特权指令‘并且把它们替换为上下文转换。为了尽量使这个过程有效,有个内核模块KQemu处理这个事情。

作为一个内核模块,KQemu仅仅需要替换最底层的ring0-only指令。在这个情况下,Qemu仍然为模拟的机器分配所有的RAM并且加载代码。不同的是,KQemu不需要重新编译代码,它仅仅调用KQemu去扫描/打补丁/执行。所有外围的硬件仿真是在Qemu中做的。

由于大部分代码都是没有变换的,但是KQemu还是需要转换ring0代码(VM内核的绝大部分代码),所以性能仍然不好。

KVM:

KVM包括很多部件:首先,它是一个Linux内核模块(现在包括在主线中)用于转换处理器到一种新的用户(guset)模式。用户模式有自己的ring状态集合,但是特权ring0的指令会陷入到管理器(hypervisor)的代码。由于这是一个新的处理器执行模型,代码不需要任何的改动。

除了处理器状态转换,这个内核模块同样处理很小一部分低层次的模拟,比如MMU注册(用于管理VM)和一部分PCI模拟的硬件。

在可预见的未来,Qemu团队专注于硬件模拟和可移植性,同时KVM团队专注于内核模块(如果某些部分确实有性能提升的话,KVM会将一小部分模拟代码移进来)和与剩下的用户空间代码的交互。

kvm-qemu可执行程序像普通Qemu一样:分配RAM,加载代码,不同于重新编译或者调用calling KQemu,它创建了一个线程(这个很重要);这个线程调用KVM内核模块去切换到用户模式,并且去执行VM代码。当遇到一个特权指令,它从新切换会KVM内核模块,该内核模块在需要的时候,像Qemu线程发信号去处理大部分的硬件仿真。

这个体系结构一个比较巧妙的一个地方就是客户代码被模拟在一个posix线程,这允许你使用通常Linux工具管理。如果你需要一个有2或者4核的虚拟机,kvm-qemu创建2或者4个线程,每个线程调用KVM内核模块并开始执行。并发性(若果你有足够多的真实核)或者调度(如果你不管)是被通用的Linux调度器,这个使得KVM代码量十分的小

当一起工作的时候,KVM管理CPU和MEM的访问,QEMU仿真硬件资源(硬盘,声卡,USB,等等)当QEMU单独运行时,QEMU同时模拟CPU和硬件。

------------------------------------------------

不同的虚拟机

VMware:真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。

VirtualBox:一款开源的x86虚拟机软件。支持windows,linux等机器的虚拟,原属德国的innotek公司,后被sun收购,称为virtualBox,2010年Oracle收购Sun又称其为Oracle Vms VirtualBox。

KVM:Kernel-based Virtual Machine的简写,是rhel5.4推出的最新虚拟化技术,目前红帽只支持在64位的rhel5.4上运行kvm,同时硬件需要支持VT技术。

Xen:Xen通过一种叫做半虚拟化的技术获得高效能的表现(较少的效能损失, 典型的情况下大约损失 2%, 在最糟的情况下会有 8% 的效能耗损; 与其它使用完全的虚拟化却造成最高到 20% 损耗的其他解决方案形成一个明显的对比),甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有极佳的表现。

VirtualPc:virtualPC 2007是微软公司开发的虚拟机软件。

Hyper-V:微软的一款虚拟化软件。

Qemu:支持虚拟不同架构的虚拟机。

winlinux:开将linux的安装和使用放在windows的系统中,而且不需要格式化硬盘,不影响原来的windows操作系统。

cygwin:在windows上运行模拟UNIX的环境。

--------------------------------------------

首先查询以下包qemu-kvm virt-manager virt-viewer python-virtinst

是否安装。

rpm -q qemu-kvm virt-manager virt-viewer python-virtinst

然后依次执行以下命令: yum install qemu-kvm virt-manager virt-viewer python-virtinst

yum groupinstall ‘Virtualization‘

建立一个虚拟机:

这时候就可以通过X界面来建立一个虚拟机咯。

应用程序--->系统工具----->虚拟器管理系统

///启动后不能连接

Have you installed libvirt, and started the system service? As root:

Code:

yum -y install libvirt

chkconfig libvirtd on

service libvirtd start

再次启动,需要输入管理员权限。

http://blog.csdn.net/xiangpingli/article/details/45832721

时间: 2024-10-23 13:04:00

qemu/kvm/qemu-kvm/virsh的区别的相关文章

Linux实现KVM+QEMU+libvirt的虚拟机环境 并使用virsh对虚拟机进行管理

说明: 本文使用的实验环境是运行在windows10上的Vmware workstation 12.5 pro,宿主机操作系统是Ubuntu16(机器名称为KVM_test),kvm+qemu+libvirt安装在KVM_test上.运行在KVM_test上的客户机操作系统也是Ubuntu16(机器名称为test_ubuntu). 本实验需要的软件有Vmware workstation.vnc viewer.ubuntu16的ios镜像.Vnc viewer需要注册码,请自行百度查找. 本实验所

qemu,kvm,qemu-kvm,xen,libvirt的区别

KVM:(Kernel-based Virtual Machine)基于内核的虚拟机 KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案.它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度.内存管理与硬件设备交互等. 从存在形式看,KVM是两个内核模块kvm.ko和kvm_intel.ko(对AMD处理器来说,就是kvm_amd.ko),这两个模块用来实现CPU的虚拟化. 如果要让用

KVM+Qemu+Libvirt实战

上一篇的文章是为了给这一篇文件提供理论的基础,在这篇文章中我将带大家一起来实现在linux中虚拟出ubuntu的server版来 我们需要用KVM+Qemu+Libvirt来进行kvm全虚拟化,创建虚拟机并管理. kvm是用来虚拟化或者说模拟CPU.内存等硬件的. QEMU只是用来虚拟化硬盘的 libvirt提供了整个虚拟机的管理,比如说虚拟机的启动,停止,创建,删除等等. 其实KVM+Qemu+Libvirt就是模拟了一个VMWare软件 环境: 宿主机:ubuntu16.04的server版

[转] KVM/QEMU hypervisor driver

KVM/QEMU hypervisor driver Project Links Deployment pre-requisites Connections to QEMU driver Driver security architecture Driver instances POSIX users/groups Linux process capabilities SELinux basic confinement SELinux sVirt confinement AppArmor sVi

[转] Kvm Qemu Libvirt

如需转载,请标明原文出处以及作者 陈锐 Rui Chen @kiwik 2014/5/4 17:53:39 写在最前面: 这段时间一直在墨西哥出差,其中遇到了各种糟心的事儿,关注我微博的同学可能都知道,但是要说的是,也有一些收获,一个就是终于在30岁的时候在墨西哥找到了一点点学英语的小窍门:另一个就是这段时间一直在想办法实现一个Ceilometer的blueprint,由于用到了 libvirt,QEMU和KVM,对虚拟化的理解有了一点点进步,总结了一下,写下这篇blog. 这篇文章是对KVM,

kvm/qemu/libvirt学习笔记 (1) qemu/kvm/libvirt介绍及虚拟化环境的安装

kvm简介 kvm最初由Quramnet公司开发,2008年被RedHat公司收购.kvm全称基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux的一个内核模块.包括核心虚拟化模块kvm.ko,以及特定CPU的模块kvm-inet.ko或kvm-amd.ko,其实现需要宿主机的CPU支持硬件虚拟化.从Linux内核版本2.6.20开始,kvm模块就已经包含在Linux内核中了.在X86平台下CPU的硬件虚拟化技术有Inetl的VT-X和AMD的AMD-V.

KVM,QEMU核心分析

目前正在学习虚拟化软件KVM相关运行原理.过程,对源码的分析进行了总结,只是为了学习交流使用,若有不正确的地方,希望大家提出. 总入口:我的个人blog:luoye.me 文章列表(可直接点击进入) 1. kvm安装与启动过程说明 2. kvm安装与启动过程说明-Kernel源码编译方式 3. KVM硬件辅助虚拟化之 EPT(Extended Page Table 4. KVM硬件辅助虚拟化之 EPT in Nested Virtualization 5. KVM-Introduce 6. KV

kvm/qemu虚拟机桥接网络创建与配置

首先阐述一下kvm与qemu的关系,kvm是修改过的qemu,而且使用了硬件支持的仿真,仿真速度比QEMU快. 配置kvm/qemu的网络有两种方法.其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送. 其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样. 第一,用户模式,虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它.比如,它可以浏览网页,但外部机器不能

kvm qemu内幕介绍

转自:http://blog.csdn.net/wj_j2ee/article/details/7978259目录 1 硬件虚拟化技术背景 2 KVM的内部实现概述 2.1 KVM的抽象对象 2.2 KVM的vcpu 2.3 KVM的IO虚拟化 2.3.1 IO的虚拟化 2.3.2 VirtIO 3 KVM-IO可能优化地方 3.1 Virt-IO的硬盘优化 3.2 普通设备的直接分配(Direct Assign) 3.3 普通设备的复用 ============================

【Qemu】Qemu怎么玩儿

1. 编译Qemu这里不建议使用自动安装,手工编译下.Qemu源代码的质量很高,什么环境都能编译过.tar -xzvf qemu.tar.gzmkdir build-qemucd build-qemuchmod +x ../qemu/configure../qemu/configure --prefix=/home/turf/Software/qemu/tools --target-list=ppc-softmmu,ppc-linux-user --enable-debug --enable-d