`

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

    博客分类:
  • KVM
 
阅读更多
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
再次启动,需要输入管理员权限。
分享到:
评论

相关推荐

    cloud-init-start:使用 cloud-init 使用 virsh 在本地 KVM 中快速启动 Ubuntu Cloud 实例

    qemu/kvm libvirt (virsh) virtinst(虚拟安装) 用法: # Define cloud-config data $ editor myhost01.user-data cloud-config 用户数据如下所示: # cloud-config hostname : example manage_etc_hosts ...

    kvm创建 kvm管理命令 管理工具

    查看快照位置:ll -h /var/lib/libvirt/qemu/snapshot/xuegod63-kvm2/ 查看快照:virsh snapshot-list xuegod63-kvm2 执行恢复:virsh snapshot-revert xuegod63-kvm2 httpd 确认恢复版本: virsh snapshot-current ...

    用命令行管理KVM虚拟机 图文演示

    用命令行管理KVM虚拟机 一、virsh/qemu-img命令 二、KVM 虚拟机安装 三、qemu-img命令详解 四、virsh命令补充 五、qemu-kvm命令行参数

    在虚拟机上运行MacOSXOSX-KVM.zip

    主系统详细信息:在 i5-6500 CPU 上运行 Ubuntu 15.10在 i5-6500 CPU 上运行 Fedora 24与 QEMU 2.4.1 和 QEMU 2.5 进行测试安装:按以下 virsh 方法参阅 boot.sh 文件:virsh --connect qemu:///system ...

    virsh-device-daemon

    创建它的目的是通过KVM / QEMU在主机和来宾之间使用一个键盘和鼠标。 它旨在作为客户机通过REST API与之通信的主机上的服务器运行。 来宾必须具有对主机的网络访问权限。 客户端和服务器都包含在同一二进制文件中。 ...

    KVM virsh命令管理虚拟机

    virsh命令管理虚拟机 一、创建虚拟机二、代码分析 三、启动虚拟机 四、迁移虚拟机五、其它操作 六、 KVM之虚拟机快照的使用和管理。

    Qemu使用手册中文版

    Qemu使用手册中文版,安装以及使用详细教程,命令详解

    KVM虚拟机技术学习总结

    (1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/ autostart目录是配置kvm虚拟机开机自启动目录。  (2) virsh命令帮助 # virsh -help 或直接virsh命令和,再执行子命令。如下所示。 [root@node1 ~]# virsh...

    mesos-cluster-kvm:使用 Vagrant 和 KVM 设置多主 Mesos 集群

    mesos-cluster-kvm 使用 Vagrant 和 KVM 设置多主 Mesos 集群使用 kvm 支持安装 vagrant确保正确安装了 libvirt 和 qemu kvm 确保您的用户是 libvirtd 组的一部分(通过运行“virsh list”进行测试)创建集群 $ git ...

    KVM虚拟机实现在线热迁移的方法步骤(图文)

    1、静态迁移(冷迁移):对于冷迁移,就是在虚拟机关闭状态下,将虚拟机的磁盘文件及.xml配置文件(这两个文件组成了一个虚拟机)复制到要迁移到的目标主机上,然后在目标主机上使用“virsh define *.xml”命令重新...

    kubermesh:裸机,自托管,自修复配置,网状网络kubernetes集群

    sudo apt-get install qemu-kvm libvirt-bin docker virtinst 入门 ./deploy libvirt 4 这将使用libvirt设置4个节点,并运行引导过程 用户名/密码当前已硬编码到core/core 有用的命令 virt-viewer kubermesh1获取...

    libvirt-web-nodejs:一个基于libVirt和nodejs的简单Web界面

    libvirt-bin ( virsh命令应由提供) virt-viewer libguestfs nodejs npm 我从依赖项中删除了ImageMagick convert命令。 平台 该项目已经在上进行了测试 ,基于Linux发行。 Ubuntu和衍生的发行版 您只需要安装...

    虚拟化技术概述 虚拟机安装与管理手册

    概述:虚拟化技术的介绍(kvm,qemu),虚拟机的安装,虚拟机的管理(virt-manger,virsh等)。 1.为什么要有虚拟化技术? 如果你的主要操作系统是windows但是又需要在Linux上工作,像VMware(需要付费。。。)或者...

    Fedora_12_虚​拟​化​指​南

    1.1. 在全新 Fedora 安装过程中安装 KVM ......................................................................... 3 1.2. 在现有 Fedora 系统中安装 KVM 软件包 ................................................

Global site tag (gtag.js) - Google Analytics