KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要像以前想象的那样,需要用软件来模拟硬件指令集了.虚拟机的指令集直接运行在宿主机物理CPU上,当虚拟机中的指令设计到IO操作或者一些特殊指令的时候,控制权转让给了宿主机(这里其实是转让给了vm monitor,下面检查VMM),也就是一个demo进程,他在宿主机上的表现形式也就是一个用户级进程. 用一…
KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输入计算输出这个步骤.传统的IO包括了网络设备IO,块设备IO,字符设备IO等等,在KVM虚拟化原理探究里面,我们最主要介绍网络设备IO和块设备IO,其实他们的原理都很像,但是在虚拟化层又分化开了,这也是为什么网络设备IO虚拟化和块设备IO虚拟化要分开讲的原因.这一章介绍一下网络设备IO虚拟化,下一章…
KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层有一些清晰直观的认识,当然我没有通读KVM的源码,文中的内容一部分来自于书籍和资料,一部分来自于实践,还有一些来自于自己的理解,肯定会有一些理解的偏差,欢迎讨论并指正.本系列文章敬代表我个人观点和实践,不代表公司层面. KVM虚拟化简介 KVM 全称 kernel-based virtual mac…
KVM 虚拟化原理探究 -- 目录 标签(空格分隔): KVM KVM 虚拟化原理探究(1)- overview KVM 虚拟化原理探究(2)- QEMU启动过程 KVM 虚拟化原理探究(3)- CPU 虚拟化 KVM 虚拟化原理探究(4)- 内存虚拟化 KVM 虚拟化原理探究(5)- 网络IO虚拟化 KVM 虚拟化原理探究(6)- 块设备IO虚拟化…
KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样非常重要的.同网络IO虚拟化类似,块设备IO也有全虚拟化和virtio的虚拟化方式(virtio-blk).现代块设备的工作模式都是基于DMA的方式,所以全虚拟化的方式和网络设备的方式接近,同样的virtio-blk的虚拟化方式和virtio-net的设计方式也是一样,只是在virtio backe…
KVM 虚拟化原理探究(4)- 内存虚拟化 标签(空格分隔): KVM 内存虚拟化简介 前一章介绍了CPU虚拟化的内容,这一章介绍一下KVM的内存虚拟化原理.可以说内存是除了CPU外最重要的组件,Guest最终使用的还是宿主机的内存,所以内存虚拟化其实就是关于如何做Guest到宿主机物理内存之间的各种地址转换,如何转换会让转换效率更高呢,KVM经历了三代的内存虚拟化技术,大大加快了内存的访问速率. 传统的地址转换 在保护模式下,普通的应用进程使用的都是自己的虚拟地址空间,一个64位的机器上的每一…
KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_RDWR); 第二步,创建虚拟机,获取到虚拟机句柄. vmfd = ioctl(kvmfd, KVM_CREATE_VM, 0); 第三步,为虚拟机映射内存,还有其他的PCI,信号处理的初始化. ioctl(kvmfd, KVM_SET_USER_MEMORY_REGION, &mem); 第四步,将…
目录 文章目录 目录 前文列表 x86 体系结构的虚拟化 硬件辅助的 CPU 虚拟化 由 VMX 切换支撑的 CPU 虚拟化技术 KVM 的 CPU 虚拟化实现 vCPU 的调度方式 客户机 CPU 拓扑和模型 虚拟机 vCPU 数量分配原则 总结 参考文档 前文列表 <虚拟化技术实现 - 虚拟化技术发展编年史> <虚拟化技术实现 - QEMU-KVM> x86 体系结构的虚拟化 首先回顾一下,我们在<虚拟化技术实现 - 虚拟化技术发展编年史>介绍了 x86 体系结构虚…
关键词:cpu虚拟化,KVM,Host-PassThrough,Nested,CGroup,NUMA,热添加 云计算虚拟化技术主要包括三个领域:计算.存储.网络 本文主要总结了计算虚拟化领域中的CPU虚拟化常见技术及应用场景.…
前面 虚拟化技术总览 中从虚拟平台 VMM 的角度,将虚拟化分为 Hypervisor 模型和宿主模型,如果根据虚拟的对象(资源类型)来划分,虚拟化又可以分为计算虚拟化.存储虚拟化和网络虚拟化,再细一些,又有中断虚拟化,内存虚拟化,字符/块设备虚拟化,网络功能虚拟化等. 我会将此作为一个系列来写,本文先看 CPU 虚拟化.在这之前,我们先来笼统看下虚拟化的本质是什么,它到底是如何做到将 Host 的硬件资源虚拟化给 Guest 用,我这里用两个词来定义,intercept 和 virtualiz…
1.1 为什么要虚拟化CPU 虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个主操作系统(Host Operating System,简称:Host OS)下运行的一种技术.这种技术只要求对客操作系统有很少的修改或甚至根本没有修改.x86处理器架构起先并不满足波佩克与戈德堡虚拟化需求(Popek and Goldberg virtualization requirements),这使得在x86处理器下对普通虚拟机…
前面我们成功地把 KVM 跑起来了,有了些感性认识,这个对于初学者非常重要.不过还不够,我们多少得了解一些 KVM 的实现机制,这对以后的工作会有帮助. CPU 虚拟化 KVM 的虚拟化是需要 CPU 硬件支持的.还记得我们在前面的章节讲过用命令来查看 CPU 是否支持KVM虚拟化吗? root@ubuntu:~# egrep -o '(vmx|svm)' /proc/cpuinfo vmx 如果有输出 vmx 或者 svm,就说明当前的 CPU 支持 KVM.CPU 厂商 Intel 和 AM…
前面我们成功地把 KVM 跑起来了,有了些感性认识,这个对于初学者非常重要.不过还不够,我们多少得了解一些 KVM 的实现机制,这对以后的工作会有帮助. CPU 虚拟化 KVM 的虚拟化是需要 CPU 硬件支持的.还记得我们在前面的章节讲过用命令来查看 CPU 是否支持KVM虚拟化吗? root@ubuntu:~# egrep -o '(vmx|svm)' /proc/cpuinfo vmx 如果有输出 vmx 或者 svm,就说明当前的 CPU 支持 KVM.CPU 厂商 Intel 和 AM…
CPU虚拟化 KVM虚拟化是需要硬件支持的.我们可以用 egrep -o '(vmx|svm)' /proc/cpuinfo 来查看是否支持CPU虚拟化. 虚拟机中每一个vCPU对应qemu-kvm中的一个线程,虚拟机的VCPU数量可以超过物理CPU数量,这个叫做CPU的超配(overcommit).这个特性使得虚拟机可以充分利用宿主机的CPU资源,但前提是在同一时刻,不是所有虚拟机都满负荷运行. 内存虚拟化 KVM通过内存虚拟化共享物理系统内存,动态分配给虚拟机.为了在一台机器上运行多个虚拟机…
参考https://www.cnblogs.com/CloudMan6/p/5263981.html   前面我们成功的把KVM跑起来了,有了些感性认识,这个对于初学者非常重要.不过还不够,我们多少要了解一些KVM的实现机制,这对后面工作会很有帮助.   CPU 虚拟化   KVM 的虚拟化 是需要CPU硬件支持的.还记得我们在前面的章节讲过用命令来查看CPU是否支持KVM虚拟化吗?   root@ubuntu:~# egrep -o '(vmx|svm)'  /proc/cpuinfo vmx…
1. 为什么需要 CPU 虚拟化 X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件.x86 架构提供四个特权级别给操作系统和应用程序来访问硬件.  Ring 是指 CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之…… 就 Linux+x86 来说, 操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别  Ring0上,这样它可以使用特权指令,控制中断.修改页表.访问设备等等. 应用程序的代码运行在最低运行级…
以下这些内容均为自行学习总结的内容,很多内容没有写概括介绍,看起来可能会有些突兀,但并不影响整体性,我自己的学习经验告诉我,这些内容还仅仅是最精简的核心部分,周边还有很多可扩展内容,主要是操作系统生态方面的内容,这些内容我目前无法概括总结,但会陆续将计算机原理和网络原理部分梳理成系列文章,以便能成系统,学习技术到一定阶段一定是需要有无全局观的,否则很容易迷失方向而无法深入.另外因为我自己的能力也很有限,无法将下面文章写的尽善尽美,但还是斗胆将自己走的弯路过滤出去,希望能分享一些有价值的东西,能让…
1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 R2附带的虚拟化组件,如果你买了足够的授权,hyper-v(包括hyper-v 2008 core)都可以免费使用. 如果是vmware或hyper-v虚拟windows系统,不管是虚拟化软件本身,还是其中的子系统,都要支付许可费用. 如果是vmware或hyper-v虚拟linux,虚拟化软件本身…
xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 R2附带的虚拟化组件,如果你买了足够的授权,hyper-v(包括hyper-v 2008 core)都可以免费使用. 如果是vmware或hyper-v虚拟windows系统,不管是虚拟化软件本身,还是其中的子系统,都要支付许可费用. 如果是vmware或hyper-v虚拟linux,虚拟化软件本身要支付许可费用,子系统可以用linux来节省成本. 如果是xen或k…
一 .虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率. 虚拟化的类型: 全虚拟化 半虚拟化(涉及修改guestos内核,因此仅支持开源kernel的系统) 硬件辅助虚拟化(主板上开启虚拟化支持) 几种虚拟化软件简介 KVM 完全虚拟化 架构:寄居架构(linux…
部分涉及到Linux.Nginx.tomcat.MySQL等的点滴操作记录,时间长了,就忘掉了,偶尔整理一下操作的history,就此简要备份一下: [原][BG]-一次虚拟化环境实践简要记录: https://www.cnblogs.com/haochuang/p/8862640.htmll [原][BG]KVM虚拟化管理 virt manager常用操作:https://www.cnblogs.com/haochuang/p/9540812.html [原][BG]三块SAS新磁盘RAID扩…
留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚拟化技术与多任务以及超线程技术是完全不同的.多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上:而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出…
虚拟化技术的分类主要有服务器虚拟化.存储虚拟化.网络虚拟化.应用虚拟化. 服务器虚拟化技术按照虚拟对象来分,可分为:CPU虚拟化.内存虚拟化.I/O虚拟化: 按照虚拟化程度可分为:全虚拟化.半虚拟化.硬件辅助虚拟化. 将不同的虚拟化对象和程度组合,可得出 9种 不同的服务器虚拟化技术. 首先详细介绍下服务器虚拟化之CPU虚拟化,后续讲解中再详细介绍内存虚拟化及I/O虚拟化. 二.CPU虚拟化 ·CPU全虚拟化技术 主要采用优先级压缩技术(Ring Compression)和 二进制代码翻译技术(…
硬件环境:技嘉AB350+AMD Ryzen 5 1600X 由于安装虚拟机的需要,所以要开启CPU的虚拟化. 首先进入BIOS. 然后如图:(M.I.T-高级频率设定-CPU超频进阶设置-SVM Mode,把SVM Mode设置成开启就实现了CPU虚拟化)…
一.说一说 本来打算将前期项目里面出现的问题的分析思路与解决方法写出来,第一.疏导一下自己的思路,第二.分析并找出自身在技术层面所存在欠缺.但由于每个人都有一根懒经所以迟迟未动.今天突然发现51CTO在做VMware[展现虚拟化商业价值]解决方案的征文活动,看着那丰厚的奖品,让我这根懒经顿时兴奋!决定将前期的一个分析思路与解决方法写下来,一来供朋友们参考,二来借助专业大师帮忙分析分析思路是否正确.由于其中涉及公司的一个相关机密所以相应的资料信息会明确的更少一些还请见谅!由于我们的服务器虚拟化.桌…
   VMware vSphere服务器虚拟化之十六 桌面虚拟化之VMware Horizon View  VMware Horizon View (原VMware View的升级版现在版本5.2)是全新桌面虚拟化产品,它以虚拟工作空间的方式提供具有弹性的桌面服务,为用户体验.管理和服务带来终极的控制力和灵活性.使用任何HTML5浏览器方便地访问远程Horizon View桌面是一项新功能,支持终端用户能够在任何设备上方便地访问他们的虚拟桌面和应用,无需提前安装烦人的客户端软件.支持硬件加速3D…
概论 线程池(英语:thread pool):一种线程使用模式.线程过多会带来调度开销,进而影响缓存局部性和整体性能.而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务.这避免了在处理短时间任务时创建与销毁线程的代价.线程池不仅能够保证内核的充分利用,还能防止过分调度.可用线程数量应该取决于可用的并发处理器.处理器内核.内存.网络 sockets 等的数量. 例如,线程数一般取 cpu 数量 +2 比较合适,线程数过多会导致额外的线程切换开销. Java 中的线程池是用 ThreadP…
Citrix 服务器虚拟化之二十一  桌面虚拟化之部署Provisioning Services Provisioning Services 是Citrix 出品的一系列虚拟化产品中最核心的一个组件,PVS其前身曾是一款知名的diskless 软件(BXP),Provisioning Services可以在服务器端创建一个或多个虚拟磁盘镜像,客户端可以通过网卡方式引导(网卡PXE bootrom)在Citrix  VDiskDrivers 的支持下连接到服务端为之提供的虚拟盘,并可以对其进行自由…
                    VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器      View Compose服务可安装在管理虚拟机的vCenter Server 实例上或安装在单独的服务器上.然后View Composer 将可以从指定的父虚拟机创建链接克隆池,这种方法可节约多达 90% 的存储成本.每个链接克隆都像一个独立的桌面,带有唯一的主机名和 IP 地址,但不同的是,链接克隆与父虚拟机共享一个基础映像,因此存储需求明显减少.…
http://wangchunhai.blog.51cto.com/225186/1425557/ 拟化.云计算.大数据.智慧城市,是近期以及将来一段时间的热点.现在虚拟化产品很多,做虚拟化的公司也很多,就是一些应用软件也在向"虚拟化"靠近.面对纷繁杂乱的市场,对于我们用户来说,或者对于我们信息中心管理人员来说,需要在什么时候应用虚拟化.又怎么选择虚拟化产品呢? 1 不适合进行虚拟化的应用 虚拟化不是万能的,并不是所有的应用都能进行虚拟化的.我们要明白,虚拟化是整合应用.共享使用资源(…