KVM 介绍(1):简要介绍及安装

作者:操作系统

你应当掌握设想机对贰个开采者,助理馆员或许普通用户是何其的珍视。

学习 KVM 的多级文章: 

1. KVM 介绍

KVM 全称是 基于内核的虚构机(Kernel-based Virtual Machine),它是二个Linux 的三个内核模块,该内核模块使得 Linux 产生了八个 Hypervisor:

有少数种艺术能够在Linux主机上运维虚拟机:VirtualBox、VMWare、KVM和QEMU是八种最流行的。每个格局都有分其余独到之处和缺点。直接利用QEMU的三个宿疾就是在开立和平运动作虚构机你将采用命令行格局。固然您对敲打多量的下令无所谓的话那样确实也不是个坏主意。假令你想利用 QEMU,但又不想凭仗命令行来产生那一个工作,那么你可以从三个叫QTEMU的软件这里拿走好处。那个工具是二个简化使用QEMU虚构机的图形化前端。在 本教程中中您会学习怎么用QTEMU创造设想机。为啥选用QTEMU?因为QTEMU能何况作为QEMU也许KVM的前端。假如您的硬件支撑KVM,那 么你能够更赶快地玩转设想机。

  • (1)介绍和设置
  • (2)CPU 和 内部存款和储蓄器虚拟化
  • (3)I/O QEMU 全设想化和准设想化(Para-virtulizaiton)
  • (4)I/O PCI/PCIe设备间接分配和 S翼虎-IOV
  • (5)libvirt 介绍
  • (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机
  • (7)快照 (snapshot)
  • (8)迁移 (migration)

1.0 虚构化简史

操作系统 1

里面,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是二个 Linux 的贰个内核模块,该内核模块使得 Linux 造成了几个 Hypervisor:

  • 它由 Quramnet 开拓,该商家于 二零一零年被 Red Hat 收购。
  • 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
  • 它从 Linux 2.6.20 起就当作一模块被含有在 Linux 内核中。
  • 它须求扶助设想化扩展的 CPU。
  • 它是一心开源的。
    本文介绍的是依据 X86 CPU 的 KVM。

它由 Quramnet 开辟,该商场于 二〇〇七年被 Red Hat 收购。
它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
它从 Linux 2.6.20 起就视作一模块被含有在 Linux 内核中。
它需求援助虚构化扩展的 CPU。
它是一点一滴开源的。官网。

安装

1. KVM 介绍

1.1 KVM 架构

KVM 是依照设想化扩张(速龙 VT 大概 英特尔-V)的 X86 硬件的开源的 Linux 原生的全虚构解决决方案。KVM 中,虚构机被完结为常规的 Linux 进度,由正规 Linux 调整程序实行调整;虚机的各类设想 CPU 被达成为贰个例行的 Linux 进程。那使得 KMV 能够运用 Linux 内核的已有意义。
唯独,KVM 本人不进行此外硬件模拟,供给客户空间程序通过 /dev/kvm 接口设置贰个客户机设想服务器的地点空间,向它提供模拟的 I/O,并将它的录像体现映射回宿主的荧屏。最近这些应用程序是 QEMU。

Linux 上的用户空间、内核空间和虚机:

操作系统 2

  • Guest:客户机系统,包含CPU(vCPU)、内部存款和储蓄器、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 方式下运作。

  • KVM:运维在基本空间,提供CPU 和内部存款和储蓄器的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 管理。

  • QEMU:修改过的为 KVM 虚机使用的 QEMU 代码,运营在用户空间,提供硬件 I/O 设想化,通过 IOCTL /dev/kvm 设备和 KVM 交互。

**KVM 是兑现拦阻虚机的 I/O 诉求的规律:
** 当代 CPU 自个儿了对独特指令的收获和重定向的硬件支撑,以致新的硬件会提供额外的能源来救助软件实现对重大硬件能源的设想化进而进步质量。以 X86 平台为例,援助虚构化技艺的 CPU 带有极其优化过的一声令下集来调节设想化进程。通过那些指令集,VMM 很轻松将客户机置于一种受限制的形式下运转,一旦客户机视图访谈物理财富,硬件会暂停客户机的运作,将调节权交回给 VMM 管理。VMM 还足以选拔硬件的虚级化巩固体制,将客户机在受限情势下对有的特定资源的拜望,完全由硬件重定向到 VMM 钦命的虚构资源,整个进程无需暂停客户机的运作和 VMM 的插手。由于设想化硬件提供斩新的架构,支持操作系统直接在上头运营,不供给举行二进制转换,裁减了连带的天性开支,比不小简化了VMM的设计,使得VMM品质更抓实有力。从 二〇〇五 年始发,AMD 在其管理器产品线中推广 英特尔 Virtualization Technology 即 速龙VT 本事。

**QEMU-KVM:
** 其实 QEMU 原来不是 KVM 的一部分,它和煦正是二个纯软件完毕的虚构化系统,所以其品质低下。不过,QEMU 代码中包括全部的设想机完结,包涵计算机虚构化,内部存款和储蓄器虚构化,以及 KVM须要运用到的虚构设备模拟(网卡、显卡、存款和储蓄调整器和硬盘等)。

为了简化代码,KVM 在 QEMU 的底蕴上做了更改。VM 运维期间,QEMU 会通过 KVM 模块提供的种类调用进入基础,由 KVM 担任将设想机置于管理的异样情势运维。蒙受虚机实行 I/O 操作,KVM 会从上次的种类调用出口处重临 QEMU,由 QEMU 来承担解析和模拟这几个设施。

从 QEMU 的角度看,也足以说是 QEMU 使用了 KVM 模块的虚构化作用,为温馨的虚机提供了硬件虚构化加速。除此以外,虚机的布局和创制、虚机运转说正视的杜撰设备、虚机运维时的用户情况和互相,以及一些虚机的一定技艺比如动态迁移,都是QEMU 本人完毕的。

**KVM:
** KVM 内核模块在运营时按需加载进入基础空间运维。KVM 本人不实践此外设施模拟,须求 QEMU 通过 /dev/kvm 接口设置三个 GUEST OS 的地点空间,向它提供模拟的 I/O 设备,并将它的摄像展现映射回宿主机的显示屏。它是KVM 虚机的主导部分,其首要功能是开始化 CPU 硬件,展开设想化情势,然后将设想客户机械运输转在设想机形式下,并对虚机的运营提供一定的支撑。以在 AMD 上运转为例,KVM 模块被加载的时候,它:

  1. 第一初叶化内部的数据结构;

  2. 搞活计划后,KVM 模块检查评定当前的 CPU,然后展开 CPU 调控及存取 CKuga4 的虚构化模式按键,并通过举行 VMXON 指令将宿主操作系统置于设想化情势的根方式;

  3. 最后,KVM 模块成立特殊器材文件 /dev/kvm 并等待来自用户空间的吩咐。

接下去的虚机的始建和运作将是 QEMU 和 KVM 互相同盟的进程。两个的通讯接口首要是一多级针对特殊装置文件 dev/kvm 的 IOCTL 调用。在那之中最要紧的是创办虚机。它能够领悟成KVM 为了有些特定的虚机制造对应的基业数据结构,同期,KVM 重回贰个文书句柄来表示所开创的虚机。

本着该句柄的调用能够对虚机做相应地保管,例如成立用户空间虚构地址和客户机物理地址、真实物理地址之间的映照关系,再举例成立四个vCPU。KVM 为每多个 vCPU 生成对应的文书句柄,对其对应地 IOCTL 调用,就能够对vCPU进行政管理制。其中最重大的正是“施行虚构管理器”。通过它,虚机在 KVM 的扶助下,被放到虚构化情势的非根形式下,初阶推行二进制指令。在非根形式下,全数敏感的二进制指令都被CPU捕捉到,CPU 在保留现场随后自动切换来根情势,由 KVM 决定怎么着管理。

除开 CPU 的设想化,内部存款和储蓄器虚构化也由 KVM 完毕。实际上,内部存款和储蓄器设想化往往是三个虚机完成中最复杂的有的。CPU 中的内部存款和储蓄器管理单元 MMU 是因而页表的情势将程序运维的虚构地址调换到实际物理地址。在虚构机情势下,MMU 的页表则必须在三次询问的时候做到两到处点转变。因为除开将客户机程序的设想地址调换了客户机的情理地址外,还要将客户机物理地址转化成真实物理地址。

 

为了撰写本文小编在一个Debian系统上设置和动用QTEMU,由此安装能够透过Synaptic完结。为了安全起见你恐怕想搜寻(并接纳性安装)如下的应用程序:

1.0 虚构化简史

操作系统 3

其间,KVM 全称是 基于内核的虚构机(Kernel-based Virtual Machine),它是Linux 的一个内核模块,该内核模块使得 Linux 产生了一个Hypervisor:

  • 它由 Quramnet 开辟,该商家于 二零一零年被 Red Hat 收购。
  • 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
  • 它从 Linux 2.6.20 起就当作一模块被含有在 Linux 内核中。
  • 它须要支持设想化扩充的 CPU。
  • 它是截然开源的。官网。

本文介绍的是依据 X86 CPU 的 KVM。

2. KVM 的机能列表

KVM 所支撑的功用包涵:

  • 支持CPU 和 memory 超分(Overcommit)
  • 支撑半设想化I/O (virtio)
  • 支撑热插拔 (cpu,块设备、互联网设施等)
  • 匡助对称多管理(Symmetric Multi-Processing,缩写为 SMP )
  • 支撑实时迁移(Live Migration)
  • 支撑 PCI 设备直接分配和 单根I/O 虚构化 (S瑞鹰-IOV)
  • 协助 内核同页合併 (KSM )
  • 支持 NUMA (Non-Uniform Memory Access,非同等存款和储蓄访谈结构 )

 

virtinst
virt-manager
kvm
python-libvirt
libvirt-bin
qemu
qtemu
virt-viewer
bridge-utils

1.1 KVM 架构

  KVM 是依照设想化扩展(AMD VT 只怕 英特尔-V)的 X86 硬件的开源的 Linux 原生的全虚拟消除决方案。KVM 中,设想机被达成为正规的 Linux 进程,由正规 Linux 调整程序开始展览调节;虚机的每种虚构 CPU 被完毕为五个符合规律的 Linux 线程。那使得 KMV 能够利用 Linux 内核的已有效果与利益。

  可是,KVM 本身不实行其它硬件模拟,须要用户空间程序通过 /dev/kvm 接口设置一个客户机设想服务器的地址空间,向它提供模拟 I/O,并将它的摄像显示映射回宿主的荧屏。最近以此应用程序是 QEMU。

 

Linux 上的用户空间、内核空间和虚机:

 

操作系统 4                  

  • Guest:客户机系统,满含CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 情势下运营。
  • KVM:运维在根本空间,提供 CPU 和内部存款和储蓄器的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 管理。
  • QEMU:修改过的被 KVM 虚机使用的 QEMU 代码,运转在用户空间,提供硬件 I/O 设想化,通过 IOCTL /dev/kvm 设备和 KVM 交互。

KVM 是达成拦阻虚机的 I/O 央求的原理:

    今世 CPU 本身达成了对特殊指令的收获和重定向的硬件援助,以至新硬件会提供额外的能源来援助软件完成对第一硬件能源的虚构化进而抓好品质。以 X86 平台为例,帮忙设想化技能的 CPU  带有极其优化过的命令集来调节虚构化进度。通过那几个指令集,VMM 很轻便将客户机置于一种受限制的格局下运营,一旦客户机试图访谈物理能源,硬件会暂停客户机运营,将调整权交回给 VMM 管理。VMM 仍可以够利用硬件的虚级化加强体制,将客户机在受限格局下对有个别一定能源的探问,完全由硬件重定向到 VMM 内定的设想能源,整个经过不必要暂停客户机的运维和 VMM 的涉企。由于虚构化硬件提供全新的架构,帮忙操作系统直接在下边运维,没有供给实行二进制转换,减弱了有关的习性开支,相当的大简化了VMM的宏图,使得VMM质量更是有力。从 贰零零陆 年开班,AMD 在其Computer产品线中加大 英特尔 Virtualization Technology 即 英特尔VT 本事。

QEMU-KVM:

  其实 QEMU 原来不是 KVM 的一片段,它本人正是三个纯软件完成的虚构化系统,所以其属性低下。但是,QEMU 代码中涵盖全部的虚构机达成,满含计算机设想化,内部存款和储蓄器虚构化,以及 KVM须要采纳到的设想设备模拟(网卡、显卡、存款和储蓄调节器和硬盘等)。

为了简化代码,KVM 在 QEMU 的基础上做了修改。VM 运营时期,QEMU 会通过 KVM 模块提供的系统调用步向基础,由 KVM 担任将设想机置于管理的特种格局运作。当虚机举办 I/O 操作时,KVM 会从上次系统调用出口处再次来到 QEMU,由 QEMU 来担负深入分析和效仿这么些器械。

 

从 QEMU 角度看,也能够说是 QEMU 使用了 KVM 模块的虚构化功能,为本身的虚机提供了硬件设想化加速。除此以外,虚机的陈设和创办、虚机运营所依附的虚构设备、虚机械运输维时的用户情况和相互,以及部分虚机的特定技能比方动态迁移,都以QEMU 自个儿实现的。

 

KVM:

    KVM 内核模块在运作时按需加载步入基础空间运营。KVM 本身不试行别的设施模拟,需求 QEMU 通过 /dev/kvm 接口设置一个 GUEST OS 的地址空间,向它提供模拟的 I/O 设备,并将它的摄像显示映射回宿主机的显示器。它是KVM 虚机的基本部分,其主要性成效是开首化 CPU 硬件,打开设想化形式,然后将设想客户机械运输营在虚构机形式下,并对虚机的运维提供一定的支撑。以在 AMD 上运维为例,KVM 模块被加载的时候,它:

  1. 率先开首化内部的数据结构;
  2. 搞好希图后,KVM 模块检验当前的 CPU,然后展开 CPU 调整及存取 C酷威4 的虚构化情势按键,并因此实行 VMXON 指令将宿主操作系统置于虚构化方式的根情势;
  3. 聊起底,KVM 模块创制特殊配备文件 /dev/kvm 并等待来自用户空间的一声令下。

 

    接下去的虚机的创办和平运动作将是 QEMU 和 KVM 互相同盟的进程。两者的通讯接口主如若一多种针对特殊装置文件 /dev/kvm 的 IOCTL 调用。个中最要紧的是创立虚机。它能够知道成KVM 为了有些特定的虚机创立对应的基业数据结构,同时,KVM 再次回到八个文件句柄来表示所开创的虚机。

 

    针对该句柄的调用能够对虚机做相应地保管,比如创造用户空间虚构地址和客户机物理地址、真实物理地址之间的映照关系,再比方说创制八个 vCPU。KVM 为每五个 vCPU 生成对应的文书句柄,对其对应地 IOCTL 调用,就能够对vCPU进行政管理制。其中最要害的正是“实践虚构管理器”。通过它,虚机在 KVM 的帮衬下,被平放设想化格局的非根情势下,初叶举办二进制指令。在非根情势下,全体敏感的二进制指令都被CPU捕捉到,CPU 在保留现场随后自动切换来根格局,由 KVM 决定如何处理。

 

    除了 CPU 的虚构化,内部存款和储蓄器虚构化也由 KVM 完结。实际上,内部存款和储蓄器虚构化往往是一个虚机完结中最复杂的有的。CPU 中的内部存款和储蓄器管理单元 MMU 是因此页表的情势将程序运营的设想地址调换来实际物理地址。在设想机情势下,MMU 的页表则必须在二回询问的时候做到五回位置调换。因为除开将客户机程序的虚构地址调换了客户机的情理地址外,还要将客户机物理地址转化成真实物理地址。 

 

3. KVM 工具集结

  • libvirt:操作和治本KVM虚机的虚构化 API,使用 C 语言编写,能够由 Python,Ruby, Perl, PHP, Java 等语言调用。能够操作包蕴KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。

  • Virsh:基于 libvirt 的 命令行工具 (CLI)

  • Virt-Manager:基于 libvirt 的 GUI 工具

  • virt-v2v:虚机格式迁移工具

  • virt-* 工具:富含 Virt-install (创设KVM虚机的命令行工具), Virt-viewer (连接到虚机显示器的工具),Virt-clone(虚机克隆工具),virt-top 等

  • sVirt:安全工具

安装组件介绍:

地点的列表恐怕会安装比你供给的更加多的东西,可是这里面包车型大巴一部分工具你以往会体会到它们的益处。选拔具有那些应用程序未来,能够点击“应用”实行安装。

2. KVM 的功效列表

KVM 所帮助的效率包蕴:

  • 支持 CPU 和 memory 超分(Overcommit)
  • 支撑半虚构化 I/O (virtio)
  • 支撑热插拔 (cpu,块设备、网络设施等)
  • 帮忙对称多管理(Symmetric Multi-Processing,缩写为 SMP )
  • 扶助实时迁移(Live Migration)
  • 支撑 PCI 设备直接分配和 单根 I/O 虚构化 (S陆风X8-IOV)
  • 扶助 内核同页合併 (KSM )
  • 协理 NUMA (Non-Uniform Memory Access,非同等存款和储蓄访谈结构 )

4. RedHat Linux KVM 安装

RedHat 有七款产品提供 KVM 设想化:

  1. Red Hat Enterprise Linux:适用于小的蒙受,提供数据相当少的KVM虚机。最新的本子包含 6.5 和 7.0.

  2. Red Hat Enterprise Virtualization (智跑HEV):提供集团规模的KVM设想化意况,满含更简明的管制、HA,品质优化和此外高端功用。最新的版本是 3.0.

RedHat Linux KVM:

  • KVM 由 libvirt API 和根据该 API的一组织工作具实行保管和调控。

  • KVM 援助系统财富超分,包罗内部存款和储蓄器和CPU的超分。RedHat Linux 最多支持物理 CPU 内核总的数量的10倍数量的虚构CPU,可是不协助在贰个虚机上分红超越物理CPU内核总量的杜撰CPU。

  • 匡助 KSM (Kenerl Same-page Merging 内核同页合併)

RedHat Linux KVM 有如下三种安装情势:

      1. KVM (名称来自罗马尼亚语: Kernel-basedVirtual Machine 的缩写,即依据内核的设想机) , 是一种用于Linux内核中的设想化基础设备,能够将Linux内核转化为二个hypervisor。
        其主导结构由两某个组成:
        贰个是KVM Driver ,是Linux 内核的多个模块,担负设想机的开创,设想内部存款和储蓄器的抽成,设想CPU贮存器的读写以及虚构CPU的运转等;

操作系统 5

3. KVM 工具集结

  • libvirt:操作和治本KVM虚机的设想化 API,使用 C 语言编写,能够由 Python,Ruby, Perl, PHP, Java 等语言调用。能够操作包涵 KVM,vmware,XEN,Hyper-v, LXC 等在内的有余 Hypervisor。
  • Virsh:基于 libvirt 的 命令行工具 (CLI)
  • Virt-Manager:基于 libvirt 的 GUI 工具
  • virt-v2v:虚机格式迁移工具
  • virt-* 工具:包蕴 Virt-install (创制KVM虚机的命令行工具), Virt-viewer (连接到虚机显示屏的工具),Virt-clone(虚机克隆工具),virt-top 等
  • sVirt:安全工具

4.1 在安装 RedHat Linux 时安装 KVM

选取安装类型为 Virtualizaiton Host :

操作系统 6

能够选用具体的 KVM 客户端、平台和工具:

操作系统 7

        

4. RedHat Linux KVM 安装

RedHat 有三款产品提供 KVM 虚构化:

  • Red Hat Enterprise Linux:适用于小的条件,提供数据比较少的KVM虚机。最新的版本包含 6.5 和 7.0.
  • Red Hat Enterprise Virtualization (奥迪Q7HEV):提供公司规模的KVM虚构化情形,包含更简便易行的田间管理、HA,品质优化和别的高等功用。最新的版本是 3.0.

 

 RedHat Linux KVM:

  • KVM 由 libvirt API 和依照该 API的一组织工作具进行保管和调整
  • KVM 支持系统能源超分,包涵内部存储器和CPU的超分。RedHat Linux 最多协助物理 CPU 内核总的数量的10倍数量的设想CPU,不过不帮助在一个虚机上分红超越物理CPU内核总量的虚拟CPU。
  • 支撑 KSM (Kenerl 萨姆e-page Merging 内核同页合并)

 RedHat Linux KVM 有如下三种安装格局:

4.2 在已有的 RedHat Linux 中设置 KVM

这种设置格局要求该体系现已被注册,否则会报错:

[root@rh65 ~]# yum install qemu-kvm qemu-img Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Install Process Nothing to do

你至少需求安装 qemu-kvm qemu-img 那多个包。

# yum install qemu-kvm qemu-img

您还足以设置任何工具包:

# yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client

      2.  另多个片段是有个别修改过的Qemu,用于模拟PC硬件的用户空间组件,模拟I/O设备模型以及提供访谈外设的不二等秘书技。

4.1 在安装  RedHat Linux 时安装 KVM

选取安装类型为 Virtualizaiton Host :

操作系统 8

能够采取具体的 KVM 客户端、平台和工具:

操作系统 9

4.3 QEMU/KVM 代码下载编写翻译安装

        qemu  全称 Quick Emulator 。 是独自虚构软件,能独立运维设想机(根本无需 kvm )。 kqemu 是该软件的增长速度软件。 kvm 并无需 qemu 举办虚构处理,只是须要它的上层管理分界面实行虚构机调整。设想机照旧是由 kvm 驱动。所以,我们不要把概念弄错了,盲目标设置 qemu 和 kqemu 。
         当一同坐班的时候,KVM管理CPU和MEM的访谈,QEMU仿真硬件能源(硬盘,声卡,USB,等等)当QEMU单独运转时,QEMU同时效仿CPU和硬件。        
        从QEMU角度来看,也得以说QEMU使用了KVM模块的设想化功效,为协和的设想机提供硬件虚构化的加速,进而非常的大地进步了设想机的性质。除了那几个之外,设想机的配备和创办,虚构机械运输维重视的杜撰设备,设想机械运输维时的用户操作遭遇和相互,以及部分针对设想机的超过常规规本事(诸如动态迁移),都以由QEMU自个儿完成的。

4.2 在已有的 RedHat Linux 中设置 KVM

这种装置格局须求该系统现已被注册,不然会报错:

[root@rh65 ~]# yum install qemu-kvm qemu-img
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
Nothing to do

您足足须求设置 qemu-kvm qemu-img 那多少个包。

# yum install qemu-kvm qemu-img

你还是能安装任何工具包:

# yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client

4.3.1 QEMU/KVM 的代码结构

QEMU/KVM 的代码包括多少个部分:

(1)KVM 内核模块是 Linux 内核的一有些。经常 Linux 相比较新的发行版(2.6.20 )都包括了 KVM 内核,也得以从(https://www.kernel.org/)获得。譬喻在自己的RedHat 6.5 上:

[root@rh65 isoimages]# uname -r2.6.32-431.el6.x86_64 [root@rh65 isoimages]# modprobe -l | grep kvm kernel/arch/x86/kvm/kvm.ko kernel/arch/x86/kvm/kvm-intel.ko kernel/arch/x86/kvm/kvm-amd.ko

(2)用户空间的工具即 qemu-kvm。qemu-kvm 是 KVM 项目从 QEMU 新拉出的贰个分支(http://wiki.qemu.org/KVM)。在 QEMU 1.3 版本从前,QEMU 和 QEMU-KVM 是有分其余,不过从 二零一二 年初 GA 的 QEMU 1.3 版本开头,两个就完全一致了。

(3)Linux Guest OS virtio 驱动,也是较新的Linux 内核的一部分了。

(4)Windows Guest OS virtio 驱动,可以从(http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers)下载。

        从QEMU和KVM模块之间的关系得以看看,那是名列前茅的开源社区在代码共用和支付项目共用地点的合作。
       诚然,QEMU能够挑选其余的设想机或能力来加快,比方Xen大概KQEMU;
        KVM也能够选取别的的用户空间程序当做设想机落成,只要它根据KVM提供的API来设计。可是在实际中,QEMU与KVM两个的组成是最成熟的选用,那对多少个新开采和新兴的门类(KVM)来讲,无疑多了一份以后成事的维持。

4.3 QEMU/KVM 代码下载编译安装

4.3.2 安装 QEMU

RedHat 6.5 上自带的 QEMU 太老,0.12.0 版本,最新版本都到了 2.* 了。

(1). 仿效那篇作品(http://www.yimiju.com/articles/531.html),将 RedHat 6.5 的 ISO 文件作为本地源

mount -o loop soft/rhel-server-6.4-x86_64-dvd.iso /mnt/rhel6/

vim /etc/fstab
=> /root/isoimages/soft/RHEL6.5-20131111.0-Server-x86_64-DVD1.iso /mnt/rhel6 iso9660 ro,loop[root@rh65 qemu-2.3.0]# cat /etc/yum.repos.d/local.repo[local]
name=local
baseurl=file:///mnt/rhel6/
enabled=1gpgcjeck=01丨yum clean all<br>yum update

(2). 安装重视托特包

yum install gcc yum install autoconf yum install autoconf automake libtool yum install -y glib*yum install zlib*

(3). 从 http://wiki.qemu.org/Download 下载代码,上传到自家的编写翻译情状 RedHat 6.5.

tar -jzvf qemu-2.3.0.tar.bz2 cd qemu-2.3.0./configure make -j 4make install

(4). 安装到位

[root@rh65 qemu-2.3.0]# /usr/local/bin/qemu-x86_64 -version qemu-x86_64 version 2.3.0, Copyright (c) 2003-2008 Fabrice Bellard

(5). 为便于起见,创造一个link

ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu-kvm

 

4.3.1 QEMU/KVM 的代码结构

QEMU/KVM 的代码富含多少个部分:

(1)KVM 内核模块是 Linux 内核的一部分。经常 Linux 相比较新的发行版(2.6.20 )都含有了 KVM 内核,也能够从这里猎取。例如在本身的RedHat 6.5 上:

[root@rh65 isoimages]# uname -r
2.6.32-431.el6.x86_64
[root@rh65 isoimages]# modprobe -l | grep kvm
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko
kernel/arch/x86/kvm/kvm-amd.ko

(2)用户空间的工具即 qemu-kvm。qemu-kvm 是 KVM 项目从 QEMU 新拉出的一个分层(看那篇文章)。在 QEMU 1.3 版本在此以前,QEMU 和 QEMU-KVM 是有分其他,但是从 二〇一一 年终 GA 的 QEMU 1.3 版本起先,两个就完全一致了。

(3)Linux Guest OS virtio 驱动,也是较新的Linux 内核的一部分了。

(4)Windows Guest OS virtio 驱动,可以从这里下载。

4.3.3 安装 libvirt

能够从 libvirt 官方网址下载安装包。最新的本子是 0.10.2.

 

4.3.2 安装 QEMU

RedHat 6.5 上自带的 QEMU 太老,0.12.0 版本,最新版本都到了 2.* 了。

(1). 参考 那篇小说,将 RedHat 6.5 的 ISO 文件作为本地源

mount -o loop soft/rhel-server-6.4-x86_64-dvd.iso /mnt/rhel6/

vim /etc/fstab
=> /root/isoimages/soft/RHEL6.5-20131111.0-Server-x86_64-DVD1.iso /mnt/rhel6 iso9660 ro,loop

[root@rh65 qemu-2.3.0]# cat /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/rhel6/
enabled=1
gpgcjeck=0

yum clean all
yum update

(2). 安装信赖马鞍包

yum install gcc
yum install autoconf
yum install autoconf automake libtool
yum install -y glib*
yum install zlib*

(3). 从  下载代码,上传到本身的编写翻译情状RedHat 6.5.

tar -jzvf qemu-2.3.0.tar.bz2
cd qemu-2.3.0
./configure
make -j 4
make install

(4). 安装实现

[root@rh65 qemu-2.3.0]# /usr/local/bin/qemu-x86_64 -version
qemu-x86_64 version 2.3.0, Copyright (c) 2003-2008 Fabrice Bellard

(5). 为便利起见,创设一个link

ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu-kvm

5. 创办 KVM 虚机的二种情势

      3.  libvirt是时下应用最为布满的对KVM虚构机实行田管的工具和API。Libvirtd是一个daemon进程,能够被本地的virsh调用,也能够被远程的virsh调用,Libvirtd调用qemu-kvm操作虚构机。

4.3.3 安装 libvirt

可以从libvirt 官网下载安装包。最新的本子是 0.10.2. 

5.1 使用 virt-install 命令

virt-install 
--name=guest1-rhel5-64 
--file=/var/lib/libvirtguest1-rhel5-64.dsk 
--file-size=8 
--nonsparse --graphics spice 
--vcpus=2 --ram=2048 
--location=http://example1.com/installation_tree/RHEL5.6-Serverx86_64/os 
--network bridge=br0 
--os-type=linux 
--os-variant=rhel5.4

 

5. 成立 KVM 虚机的两种格局

5.2 使用 virt-manager 工具

操作系统 10

操作系统 11

应用 VMM GUI 创造的虚机的xml 定义文件在 /etc/libvirt/qemu/ 目录中。

 

5.1 使用 virt-install 命令

virt-install 
--name=guest1-rhel5-64 
--file=/var/lib/libvirtguest1-rhel5-64.dsk 
--file-size=8 
--nonsparse --graphics spice 
--vcpus=2 --ram=2048 
--location=http://example1.com/installation_tree/RHEL5.6-Serverx86_64/os 
--network bridge=br0 
--os-type=linux 
--os-variant=rhel5.4

5.3 使用 qemu-img 和 qemu-kvm 命令行情势安装

(1)创立叁个空的qcow2格式的镜像文件

qemu-img create -f qcow2 windows-master.qcow2 10G

操作系统,(2)运营多个虚机,将系统安装盘挂到 cdrom,安装操作系统

qemu-kvm  -hda  windows-master.qcow2  -m  512  -boot d  -cdrom /home/user/isos/en_winxp_pro_with_sp2.iso

(3)现在您就颇具了三个带操作系统的镜像文件。你能够以它为模板创立新的镜像文件。使用模板的补益是,它会被安装为只读所以可防止于破坏。

qemu-img create -b windows-master.qcow2 -f  qcow2   windows-clone.qcow2

(4)你可以在新的镜像文件上运行虚机了

qemu-kvm  -hda  windows-clone.qcow2  -m 400

 

5.2 使用 virt-manager 工具

操作系统 12

操作系统 13

接纳 VMM GUI 创设的虚机的xml 定义文件在 /etc/libvirt/qemu/ 目录中。

5.4 通过 OpenStack Nova 使用 libvirt API 通过编制程序格局来成立虚机 (前边会介绍)

作者:刘世民(sammyli)

博客:http://www.cnblogs.com/sammyliu/

 

5.3 使用 qemu-img 和 qemu-kvm 命令行情势安装

(1)创立一个空的qcow2格式的镜像文件

qemu-img create -f qcow2 windows-master.qcow2 10G

(2)运维二个虚机,将系统装置盘挂到 cdrom,安装操作系统

qemu-kvm  -hda  windows-master.qcow2  -m  512  -boot d  -cdrom /home/user/isos/en_winxp_pro_with_sp2.iso

(3)以后你就全部了一个带操作系统的镜像文件。你能够以它为模板创造新的镜像文件。使用模板的好处是,它会被设置为只读所以能够防于破坏。

qemu-img create -b windows-master.qcow2 -f  qcow2   windows-clone.qcow2

(4)你能够在新的镜像文件上运营虚机了

qemu-kvm  -hda  windows-clone.qcow2  -m 400

 

5.4 通过 OpenStack Nova 使用 libvirt API 通过编制程序格局来创设虚机 (后边会介绍)

一、安装计划
1.规定机器有VT
       终端输入指令: grep vmx /proc/cpuinfo (INTEL芯片)
grep svm /proc/cpuinfo (AMD芯片)
不知底芯片的生产商家则输入:egrep '(vmx|svm)' /proc/cpuinfo
只要flags: 里有vmx 只怕svm就注明辅助VT;若无别的的出口,表明您的cpu不扶助,将不可能成功安装KVM设想机。

2. 确保BIOS里开启VT
 Intel(R) Virtualization Tech [Enabled]
如有须求,还需在BIOS中拉开VT-d

3. 确定保障水源版本较新,援救KVM
用uname –r查看内核版本,假诺在2.6.20之下的linux版本,需进级内核。

自己这里运用   CentOS release 6.3      内核版本  2.6.32-279.el6.x86_64

 

 

二、安装KVM
上面就Ubuntu和CentOS下安装使用KVM设想机做牵线:

1.Ubuntu 安装
用guest登入,安装KVM的命令为:
sudo apt-get install kvm qemu qemu-kvm virt-manager kernel-package linux-source kqemu-source build-essential
kvm安装成功后会有/dev/kvm,假若不要求图形管理器,只必要安装前多少个就能够。

再来查看下KVM是还是不是安装成功,推行:virsh -c qemu:///system list
一旦输入结果像上边那样的,那么成功了:
Connecting to uri: qemu:///system
Id Name State


2.CentOS中设置时
注1:CentOS中装置时,先要选用Selinux为enable,使用命令
#system-config-securitylevel-tui
可查阅或改造selinux的景色。

注2: CentOS中用root登录时则设置命令为:
yum install kvm kmod-kvm qemu
再装入kvm模块:modprobe kvm-intel (Intel机器) 或者 modprobe kvm-amd (amd机器)

注3:能够用来下命令来检查是还是不是装入kvm模块:
/sbin/lsmod | grep kvm
万一出口关于kvm版本的新闻则已装入kvm模块

注4: 安装好后,可应用qemu-kvm命令,输入该命令,假若系统显示未知的吩咐,可查看/usr/libexec中是还是不是有qemu-kvm可执行文件,即使有,将其拷贝到/bin目录下就可以。
       假若实在根据地点的步调进行了,却在/bin,/usr/libexec,/usr/bin,/usr/sbin里都找不到qemu-kvm可实行文件,可施行以下命令:
#yum provides "*/qemu-kvm"

注5:安装新内核后,恐怕有局地软件版本过低,不兼容。举例firefox因版本过低,不可能起动。
CentOS下可使用如下命令更新该软件(以firefox为例):
#yum update firefox

 

 

**三、使用KVM

本文由ca88发布,转载请注明来源

关键词: 虚拟 日记本 Nova KVM 自动化