为了保证虚拟机在不同宿主机之间迁移的时候的兼容性,Libvirt对CPU提炼出标准的几种类型,在/usr/share/libvirt/cpu_map.xml中可以查到。cpu_map.xml不仅是CPU型号,还有生产商信息、每种型号的CPU特性定义等信息,如下所示:

<cpus>
<arch name='x86'>
<!-- vendor definitions -->
<vendor name='Intel' string='GenuineIntel'/>
<vendor name='AMD' string='AuthenticAMD'/> <!-- standard features, EDX -->
<feature name='fpu'> <!-- CPUID_FP87 -->
<cpuid function='0x00000001' edx='0x00000001'/>
</feature>
<feature name='vme'> <!-- CPUID_VME -->
<cpuid function='0x00000001' edx='0x00000002'/>
</feature>
<feature name='de'> <!-- CPUID_DE -->
<cpuid function='0x00000001' edx='0x00000004'/>
</feature>
<feature name='pse'> <!-- CPUID_PSE -->
<cpuid function='0x00000001' edx='0x00000008'/>
</feature>
<feature name='tsc'> <!-- CPUID_TSC -->
<cpuid function='0x00000001' edx='0x00000010'/>
</feature>
<feature name='msr'> <!-- CPUID_MSR -->
<cpuid function='0x00000001' edx='0x00000020'/>
</feature>
...
<!-- models -->
<model name='486'>
<feature name='fpu'/>
<feature name='vme'/>
<feature name='pse'/>
</model>
...
<!-- Intel CPU models -->
<model name='Conroe'>
<model name='pentiumpro'/>
<vendor name='Intel'/>
<feature name='mtrr'/>
<feature name='mca'/>
<feature name='pse36'/>
<feature name='clflush'/>
<feature name='pni'/>
<feature name='ssse3'/>
<feature name='syscall'/>
<feature name='nx'/>
<feature name='lm'/>
<feature name='lahf_lm'/>
</model>

Centos6.6所带的Libvirt主要规定了以下几种CPU型号:'486','pentium','pentium2','pentium3','pentiumpro','coreduo'

CPU模式配置

1)custom模式

xml配置文件如下:

<cpu mode='custom' match='exact'>
<model fallback='allow'>kvm64</model>
</cpu>

2)host-model模式

根据物理CPU的特性,选择一个最靠近的标准CPU型号。如果没有指定CPU模式,默认也是使用这种模式,xml配置文件如下:

<cpu mode='host-model' />

3)host-passthrough模式

直接将物理CPU暴露给虚拟机使用,在虚拟机上完全可以看到的就是物理CPU的型号,xml配置文件如下:

<cpu mode='host-passthrough' />

注意:使用host-model模式,Libvirt会根据物理CPU的型号,从规定的CPU中选择一种最接近的CPU型号,而使用host-passthrough模式直接看到的就是物理CPU的型号

CPU host-passthrough技术的应用场景

HOST技术使用于以下场景

1)需要将物理CPU的一些特性传给虚拟机使用,比如使用虚拟机嵌套的nested技术的时候

2)需要在虚拟机里面看到和物理CPU一模一样的CPU品牌型号,这个在公有云很有意义,用户体验比较好

注意:使用CPU host-passthrough技术需要注意,不同型号的CPU宿主机之间虚拟机不能迁移

CPU host-passthrough技术与应用的更多相关文章

  1. Intel系列CPU的流水线技术的发展

    Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...

  2. 剖析CPU温度监控技术【转】

    转自:http://blog.csdn.net/hunanchenxingyu/article/details/46476545 迄今为止还没有一种cpu散热系统能保证永不失效.失去了散热系统保护伞的 ...

  3. 剖析CPU温度监控技术

    转载 :剖析CPU温度监控技术   标签: CPU 温度控制技术 1805 具体温度检测调整代码(转载)        迄今为止还没有一种cpu散热系统能保证永不失效.失去了散热系统保护伞的“芯”,往 ...

  4. 一个故事看懂CPU的SIMD技术

    好久不见,我叫阿Q,是CPU一号车间的员工.我所在的CPU有8个车间,也就是8个核心,咱们每个核心都可以同时执行两个线程,就是8核16线程,那速度杠杠滴. 我所在的一号车间,除了负责执行指令的我,还有 ...

  5. 虚拟化技术实现 — KVM 的 CPU 虚拟化

    目录 文章目录 目录 前文列表 x86 体系结构的虚拟化 硬件辅助的 CPU 虚拟化 由 VMX 切换支撑的 CPU 虚拟化技术 KVM 的 CPU 虚拟化实现 vCPU 的调度方式 客户机 CPU ...

  6. 虚拟化技术原理(CPU、内存、IO)

    本文来自:http://www.ywnds.com/?p=5856 虚拟化 云计算现在已经非常成熟了,而虚拟化是构建云计算基础架构不可或缺的关键技术之一. 云计算的云端系统, 其实质上就是一个大型的分 ...

  7. CPU虚拟化的常见技术

    关键词:cpu虚拟化,KVM,Host-PassThrough,Nested,CGroup,NUMA,热添加 云计算虚拟化技术主要包括三个领域:计算.存储.网络 本文主要总结了计算虚拟化领域中的CPU ...

  8. CPU纯软件半虚拟化技术

    在2003年出现的Xen,使用了另外的一种半虚拟化的方案来解决x86架构下CPU的敏感指令问题.主要采用Hypercall技术.Guest OS的部分代码被改变,从而使Guest OS会将和特权指令相 ...

  9. CPU纯软件全虚拟化技术

    我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化3大类.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何 ...

  10. CPU封装技术介绍

    所谓“CPU封装技术”是一种将集成电路用绝缘的塑料或陶瓷材料打包的技术.以CPU为例,我们实际看到的体积和外观并不是真正的CPU内核的大小和面貌,而是CPU内核等元件经过封装后的产品. CPU封装对于 ...

随机推荐

  1. Ubuntu 14.04 安装最新稳定版Nginx 1.6.0

    如果已经安装,请先卸载sudo apt-get remove nginx最新的稳定版Nginx 1.6.0在ubuntuupdates ppa库中提供,网址http://www.ubuntuupdat ...

  2. 纯CSS下拉导航菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="h ...

  3. linux下截取整个网页

    前提需要安装 gimp图片处理软件 打开gimp 文件-创建-从网页  然后输入网页地址就可以截取整个网页了

  4. bootstrap 2.3版与3.0版的使用区别

    bootstrap 2.3版与3.0版的使用区别 bootstrap已经推出了3.0的新版,看起来2.3.x版本也不会再更新了.那么bootstrap 2.3版与3.0版的区别在哪里呢?下面我们就来介 ...

  5. Activiti 学习笔记记录(二)

    上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Act ...

  6. java-二维码编写zxing

    zxing 这个是google的 下载地址 http://code.google.com/p/zxing/downloads/list 二维码源码案例 package com.utils; impor ...

  7. 使用redis避免客户端频繁提交数据

    避免客户端频繁向服务器提交表单的解决方案 使用redis 在order的model中增加函数 ) { try{ $key = "lock_" . $key; $num = $thi ...

  8. 76.Android之EventBus源码解析

    转载:http://p.codekk.com/blogs/detail/54cfab086c4761e5001b2538 1. 功能介绍 1.1 EventBus EventBus 是一个 Andro ...

  9. [bzoj2517]矩形覆盖

    Description 给定一个$l\;\times\;w$的矩形,和$n$个圆,求最小的$k$使得每个圆的半径$\;\times\;k$后,能覆盖整个矩形. Input 第一行一个整数$T$,表示数 ...

  10. 用ProGet搭建内部的NuGet服务器(更新安装步骤)

    以下是转自dudu的文章,但是我发觉时间的问题,他的安装方法已经不适用了,所以这里我更新了安装方法: 最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功 ...