KVM虚拟化CPU技术总结 一 NUMA技术介绍 NUMA是一种解决多CPU共同工作的技术方案,我们先回顾下多CPU共同工作的技术架构历史。...linux的numu平衡策略 linux系统默认是自动numu平衡策略,如果要关闭Linux系统的自动平衡,使用如下命令 # echo 0 > /proc/sys/kernel/numa_balancing...应用场景:对于虚拟机跑得应用非常重要,不能停机,而性能严重不足的场景,CPU热添加的技术是一个很好的解决方案。...KVM虚拟机嵌套和VMWare原理不同,VMWare第一层是用的硬件虚拟化技术,第二层就是完全软件模拟出来的,所以VMWare只能做两层嵌套。...,要将物理机CPU特性全部传给虚拟机,使用CPU HOST技术 第三步 和宿主机一样,将第一层虚拟机按照宿主机配置,按照相应的组件,然后就可以再安装第二层的虚拟机了
目前,Intel VT技术包含CPU、内存和I/O三方面的虚拟化技术。...内存硬件辅助虚拟化技术包括EPT(Extended Page Table)技术。...CPU硬件辅助虚拟化技术简要说明流程图: ? 效法IBM 大型机,VT-x提供了2 个运行环境:根(Root)环境和非根(Non-root)环境。...2、AMD-V技术 我们在上面小节介绍了 Intel 的硬件辅助虚拟化技术,那么 AMD 的硬件辅助虚拟化技术又有什么特点呢?...3、总结 回顾一下CPU虚拟化技术的实现,纯软件的CPU虚拟化使用了陷入-模拟的模式来模拟特权指令,而在x86架构中由于只能模拟特权指令,无法模拟某些敏感指令而无法实现完全的虚拟化。
SR-IOV/MR-IOV)、数据直接 I/O 技术(DDIO) 2、CPU虚拟化 目前主要的 CPU 虚拟化技术是 Intel 的 VT-x/VT-i 和 AMD 的 AMD-V 这两种技术。...Intel CPU 虚拟化技术主要有 2 类: VT-x:用于 X86 架构的的 CPU 虚拟化技术(Intel Virtualization Technologyfor x86),主要是 IA-32...改动 CPU 指令集:即硬件辅助虚拟化(HVM:Hardware-assisted Virtualization Machine),优点是无需改动 Guest OS,兼容 Windows 与 Linux...2.4.2 CPU 半虚拟化 ---- CPU Para-Virtualization 以 Xen 和 Hyper-V 为代表,但 VMware 的 ESXi Server 和 Linux 的 KVM...3、内存虚拟化 大型操作系统(比如 Linux)的都是通过虚拟内存进行内存管理,内存虚拟化需要对虚拟内存再进行虚拟化。 内存虚拟化技术主要包含两个方面:内存地址转换和内存虚拟化管理。
前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化、存储虚拟化和网络虚拟化,再细一些...CPU 软件虚拟化 基于软件的 CPU 虚拟化,故名思议,就是通过软件的形式来模拟每一条指令。通过前面的文章我们知道常用的软件虚拟化技术有两种:优先级压缩和二进制代码翻译。...这两种是通用技术,可以用在所有虚拟化类型中。我们就结合 intercept 和 virtualize 来看看 CPU 软件虚拟化是怎么做的。...KVM CPU 虚拟化 KVM 是一种硬件辅助的虚拟化技术,支持 Intel VT-x 和 AMD-v 技术,怎么知道 CPU 是否支持 KVM 虚拟化呢?...从本质上看,一个 KVM 虚拟机对应 Host 上的一个 qemu-kvm 进程,它和其他 Linux 进程一样被调度,而 qemu-kvm 进程中的一个线程就对应虚拟机的虚拟 CPU (vCPU),虚拟机中的任务线程就被
前言: 这里作者再次自不量力了,以一点微末的道行分析一下KVM的CPU虚拟化部分的代码。...kvm_create_vm函数主要用来创建并初始化kvm数据结构,包括lock,memslot,mmu notifier等,并把数据结构加入到vm_list(双链表,用来保存本机上KVM创建的的所有vm...当用户进程请求了KVM_RUN之后,会通过这样的路径让CPU进入vm模式: kvm_arch_vcpu_ioctl_run(linux-4.0.4/arch/x86/kvm/x86.c)->__vcpu_run...->vcpu_enter_guest->vmx_vcpu_run(linux-4.0.4/arch/x86/kvm/vmx.c) cpu进入到了vm模式,就在跑虚拟机中的代码。...在虚拟机中,这就是一个cpu。
这就是XEN这种半虚拟化架构的优势。这也是为什么XEN只支持虚拟化Linux,无法虚拟化windows原因,微软不改代码啊。...而且CPU厂商,支持虚拟化的力度越来越大,靠硬件辅助的全虚拟化技术的性能逐渐逼近半虚拟化,再加上全虚拟化不需要修改客户操作系统这一优势,全虚拟化技术应该是未来的发展趋势。...1.3 虚拟化技术分类 当前的虚拟化技术主要分为三种: 1.平台虚拟化 平台虚拟化是针对计算机和操作系统的虚拟化,也就是大家最常见的一种虚拟化技术,Hyper-V,Xen,VMware等产品都是应用这类虚拟化技术...有了Intel-VT技术和AMD-V技术,Guest OS和VMM被完全隔离开来,同时,CPU虚拟化技术给CPU增加了新的Root模式,这样就实现了Guest OS和VMM的隔离。...1.3.5 各类虚拟化技术对比 利用二进制翻译的全虚拟化 硬件辅助虚拟化 操作系统协助/半虚拟化 实现技术 BT和直接执行 遇到特权指令转到root模式执行 Hypercall 客户操作系统修改/兼容性
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 ...座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 ---- 前言 本章将会讲解云计算虚拟化中的CPU虚拟化。...---- 一.CPU虚拟化 在物理机(宿主机)中通过线程或进程这种纯软件方式模拟出假的CPU,通过CPU虚拟化就可以将一个物理CPU发给不同的虚拟机使用。...---- 1.CPU虚拟化的计算 计算公式:总资源=服务器CPU个数*单个CPUx核数kernel*线程(超线程为2,单线程为1) (1)一颗cpu的算力 1....缺点是可能会增加网络延迟和降低网络吞吐量 ---- 3.NUMA NUMA(Non Uniform Memory Access Architecture)非统一内存访问体系结构,提高物理服务器性能的一种技术
写在前面 博文内容为 Linux 网络隧道技术 VXLAN 认知,内容涉及: vxlan 协议介绍 vxlan 基本配置命令 基于Linux 网络命名空间的 vxlan 组网 Demo 自维护 VTEP...VXLAN :虚拟扩展局域网(Virtual Extensible LAN)是一种虚拟化隧道通信技术,它可以帮助我们在不同的物理网络间构建一个虚拟的网络。...VXLAN 是一种overlay(覆盖网络)技术,即在三层的网络搭建虚拟的二层网络。...VM指的是虚拟机,Hypervisor指的是节点的虚拟机管理器。VXLAN不仅能用在基于虚拟机的虚拟化系统中,还被广泛应用于容器集群。...VXLAN 要求 Linux 内核版本在3.7以上,最好为3.9以上,所以在一些旧版本的 Linux 上无法使用基于 VXLAN 的封包技术。
虚拟化技术 如果要用简单的语句来阐述虚拟化技术的话,那么可以这么解释: 虚拟化技术是一种将计算机物理资源进行抽象、转换为虚拟的计算机资源提供给程序使用的技术。...这里所指的计算机资源,就包括了 CPU 提供的运算控制资源,硬盘提供的数据存储资源,网卡提供的网络传输资源等。 虚拟化的分类 说完虚拟化的起源和应用,我们得说说虚拟化的分类了。...所谓虚拟化的分类,其实主要指的是我们在实现虚拟化的方式上的区别。 对于虚拟化技术的分类,有很多种不同的方式,有的之间也有互相重合的部分,但总体来说可以区分为两大类:硬件虚拟化、软件虚拟化。...又或者说,CPU 能够自身模拟裂变,让程序或者操作系统认为存在多个 CPU,进而能够同时运行多个程序或者操作系统。这些都是硬件虚拟化的体现。...而软件虚拟化则指的是通过软件的方式来实现虚拟化中关键的指令转换部分。依然用 CPU 的例子来说话,在软件虚拟化实现中,通过一层夹杂在应用程序和硬件平台上的虚拟化实现软件来进行指令的转换。
与传统存储的比较 与传统存储相比,虚拟化存储的优点主要体现在:磁盘利用率高,传统存储技术的磁盘利用率一般只有30-70%,而采用虚拟化技术后的磁盘利用率高达70-90%;存储灵活,可以适应不同厂商、不同类别的异构存储平台...带外(Out-of-band)/非对称存储虚拟化技术 带外存储虚拟化设备安装在主机和存储之间的数据通道之外,因而主机中需要安装专门的软件。...注意事项:逐渐被独立路径存储虚拟化技术取代。 寻找:在带内和独立路径技术之外,寻找稳定、适应能力强的供应商和解决方案。...实例:LSI StoreAge 分离路径存储虚拟化技术 分离路径存储虚拟化技术综合了带内和带外技术的优点: 特征:分离路径存储虚拟化技术在与软件绑定的开关或者产品中采用存储服务模块或者适应器。...利用虚拟化技术,可以在统一的虚拟化基础架构中,实现跨数据中心的虚拟化管理。 政府信息系统:政府数据存储系统的建设正受到前所未有的重视。
具体来说,操作系统提供了这么三个要素: 虚拟化(Virtualization),主要指的是CPU和内存虚拟化,仿佛每个进程都有自己独占的CPU和内存。...正是通过CPU和内存虚拟化,操作系统提供了这种幻象:似乎每一个进程都有一个独占的CPU和一片巨大的独占内存。...操作系统通过分时复用的方式实现了CPU的虚拟化,运行进程A一段时间后,主动或被动地把这个进程的状态信息写入物理内存然后从物理内存中读取另一个进程B的状态信息,从而恢复进程B的运行。...Running:进程正在通过CPU执行指令 Ready:进程可以运行,但是操作系统还没有调度它 Blocked:进程在等待某个事件发生(比如等待磁盘读取完成),因此还不能运行 这是一个理想化的状态,Linux...CPU虚拟化 下面来考虑实现CPU虚拟化要解决的两个核心问题: 安全:用户的进程不应该拥有无限制的权限,比如它不应该能访问另一个用户的文件,而权限检查的把关就需要由操作系统来实现。
每个NUMA上有一个CPU。...对于大规格的虚拟机,尤其是32 vCPU或者40vCPU的场景下,对于计算密集型的业务,需要把物理机的CPU拓扑信息正确的透传到虚拟机中,否则跨Socket的内存访问,同一个Core下的两个Hyper-thread...,Host kernle是怎么获取到的CPU的拓扑关系的呢?...Linux有命令cpuid,代码在https://github.com/tycho/cpuid cpuid命令的结果截取如下: ?...可见,根据qemu的计算结果来看,cpu0和cpu1会在socket0的core0上。 物理机的拓扑有时候会是0,2,4,6。。。
讲到intel的cpu虚拟化,就不得不提到vt-x。...vt-x是intel的CPU硬件虚拟化技术,但是在操作系统内部查看cpu的flag时,是否支持硬件虚拟化的的判断标准是是否有vmx,vmx是什么,它和虚拟化有什么关系,本文将会涉及到。...3.CPU运行级别: CPU支持ring0~ring3 4个等级,但是Linux只使用了其中的两个ring0,ring3。...CPU虚拟化 有了cpu的运行级别和VMX,就可以看一下CPU虚拟化的基本运行情况了。...关于Intel的cpu虚拟化的详细说明可参考: ? ---- 关注本公众号,了解更多关于云计算虚拟化的知识。
虚拟化技术发展简史 作者:张子良 版权所有,转载请注明出处 一 概述 虚拟化技术按照其发展历史,可以分为四个阶段:硬件仿真虚拟化、完全虚拟化、半虚拟化和操作系统虚拟化。...当前阶段的虚拟化技术以半虚拟化技术为主流,操作系统虚拟化是发展方向,目前主要应用在高端应用领域。下面将从每一种虚拟化技术的原理、优点、缺点和代表产品四个方面进行介绍。 ...传统的完全虚拟化,虚拟机运行在操作系统之上,虚拟机管理程序本身运行在cpu的Ring 0,虚拟的Guest OS则运行在Ring 1(为了避免Guest OS破坏Host OS,Guest OS必须运行...硬件辅助的完全虚拟化需要CPU硬件支持,有INTEL的VT和AMD的 AMD-V两种技术,只有支持这两种技术的CPU才可以使用。...进行协调,这个缺点很大的影响了半虚拟化技术的普及,因为Linux等系统可以修改,而其它不能修改的系统就不能用了。
在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境...由于目前信息技术领域的很多企业都曾在宣传中将该企业的某种技术称为虚拟化技术,这些技术涵盖的范围可以从Java虚拟机技术到系统管理软件,这就使得准确的界定虚拟技术变得困难。...图 - 虚拟化前后对比 详情参考。...是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。...KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存
虚拟容器化技术 作者寄语: 首先我们需要学习一个知识,或多或少会有所目标或需求。那么我在对于选择的时候会进行相对应的分析,优中择优? 什么是虚拟容器化化技术?...IT里的容器技术是英文单词Linux Container的直译。...container这个单词有集装箱、容器的含义(主要偏集装箱意思,如果要形象的理解Linux Container技术的话,还是得念成集装箱会比较好。...那么虚拟容器是什么,它与虚拟化又有什么不同? 传统虚拟化技术从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机(Virtual Machine)来称呼。...如果说虚拟化是将房子分成房间,那么虚拟容器化技术就是将“房间”里的柜子分层。 虚拟容器化技术的优与劣: 优势: 更高效的系统资源利用率。
在之前虚拟化技术分为全虚拟化和半虚拟化,因为早期的CPU硬件不支持虚拟化,虚拟机上的操作系统(Guest OS)要想使用CPU资源,需要通过VMM来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫做全虚拟化...半虚拟化技术通过修改Guest OS内核,让Guest OS可以直接使用CPU资源,而不需要翻译指令了,从而节省了资源,但修改内核比较鸡肋(例如XEN),因为有些操作系统的内核是不开源的。...后续CPU厂商直接支持虚拟化,不需要通过VMM翻译指令了,就无所谓半虚拟化和全虚拟化了。...,可参考以下文章: 虚拟化技术漫谈 全虚拟化和半虚拟化的区别 cpu的ring0 ring1又是什么概念?...KVM是一个完全开源的系统虚拟化模块,它所基于的是Linux内核,它把Linux内核变成了一个Hypervisor,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。
领取专属 10元无门槛券
手把手带您无忧上云