Please enable JavaScript.
Coggle requires JavaScript to display documents.
KVM (:moneybag:创建一个镜像 (镜像制作 (不建议分区交换分区(本来磁盘性能就差), :one:分区的时候只分一个/分区, :two…
KVM
:moneybag:创建一个镜像
:star:实际上我们已经创建好了,就是ls /opt
-
-
-
-
:moneybag:libvirt
:explode:KVM管理工具(类似于VMware Workstation的命令行版本),虚拟化工具的同一接口,支持Xen,VMware,VirtualBox,KVM
:bulb:virt-manager也是KVM的管理工具,是图形化的
-
-
-
:moneybag:优化
:one:CPU
-
-
:moneybag:上下文切换
:two:虚拟机
:star:不能工作在ring0上,因为虚拟机只是应用程序
:one:半虚拟化
:explode:半虚拟化工作在非ring0状态,操作系统知道自己在虚拟机上跑
:star:原先在物理机上执行的指令就不行了,和hypervisor约定好,定制内核,执行别的
-
:two:全虚拟化
-
虚拟机是应用程序,处于ring3级别。VMM工作在ring0上,一般以驱动程序的形式体现,驱动程序都是工作在ring0上,否则驱动不了设备。当客户操作系统执行特权指令时,会触发异常。因为没有权限,按照CPU机制,没权限的指令,会触发异常。然后VMM捕获这个异常,在异常里面做翻译,模拟,最后返回到客户操作系统内,客户操作系统认为自己的特权指令工作正常,继续运行。从这里可以看到,全虚拟化技术性能损耗非常大,原来简单的一条指令,执行完就没了,现在却要通过复杂的异常处理过程,性能自然会下降很多。在全虚拟化环境下,客户操作系统不知道自己运行在虚拟环境中。
:explode:KVM的工作就是减少cache miss.通过lscpu
查看1级缓存等,1级缓存是静态的.KVM是进程,受进程调度器控制,可以调度到任何CPU上去.每个CPU都有自己的1,2,3级缓存.如果我调度到了其他CPU上,就产生cache miss.把进程绑定到特定CPU<=xml或者taskset
:one:Intel(实际CPU的情况)
硬件帮忙做上下文转换,intel的VT-X实现硬件方面的加速转换,默认都是开启状态
-
:moneybag:优化
-
:two:使用taskset绑定KVM进程到固定的CPU,减少Cache Miss
-
:two:内存
:one:内存寻址
-
:moneybag:影子页表
-
:dagger_knife:EPT
:explode:Intel觉得影子页表太麻烦,使用EPT,芯片里有EPT,直接使用CPU寄存器来帮助转换虚拟机的虚拟内存到宿主机的物理内存
-
-
:two:内存空间合并
:warning:ksm进程(ksmd)会帮忙做内存合并,默认开启
-
-
:three:IO
:explode::one:基本不用优化,因为默认的Virtio就已经很好了 :two:SSD一定要将IO调度算法改成Noop
:bread:默认使用了Virtio
:dagger_knife:Virtio
-
-
:moneybag:virtio,virtio-net,virtio-blk
:moneybag:Linux的IO调度算法
:explode:电梯算法,先走最下面,再到最上面
:recycle:调度算法分类
:two:Noop
-
-
:star:如果前面有个write的操作,后面的就要等
-
-
-
-
-
:moneybag:KVM的IO
-
-
:two:writethrough
:star:断电不丢数据,性能最差(没有缓存),默认
-
:explode:实际上KVM的优化点很少,默认就已经很不错了
-
:moneybag:存储格式
:one:全镜像模式
:tornado:raw
:star:raw多大就直接占用多大,可以转化成其他,性能最优
:two:稀疏模式
:tornado:qcow2
:star:qcow2功能最强,支持压缩,快照,存储空间是用多大就占多大,OpenStack首选
-
:moneybag:qemu
:explode:管理KVM的工具(用户态的工具,KVM是内核态的)
:star:虚拟化软件,可以虚拟不同CPU,支持异步
:moneybag:KVM管理工具
:explode:OpenStack,CloudStack,OpenNebula,oVrit
:moneybag:oVrit
-
:moneybag:安装
:one:oVrit Engine
-
:moneybag:配置方式是问答的方式
:bulb:其他配置采用问答方式的是Zimbra(老师推荐的开源邮箱),老师最后使用的是腾讯企业邮箱...
-
-
-
:star:RedHat在6版本后就使用KVM,社区也非常活跃,虚拟机就是1个进程(可以kill掉),直接支出NUMA技术(提高扩展性)
-
:moneybag:Linux内核的模块,不用安装,只用加载
-