kvm随笔(一)
2021/5/7 10:30:03
本文主要是介绍kvm随笔(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、kvm是全虚拟化、xen是准虚拟化
kvm属于内核的一部分,xen类似于替换内核(2005年intel开发出了xen3.0,开始支持intel的VT和IA64,至此xen可以跑没有修改的操作系统,2010年内核社区接纳xen,linux3.0内核主干对xen支持越来越好)
全虚拟化有无可比拟的优势,因为准虚拟化需要修改客户操作系统,因此不支持windows
2、软件虚拟化与硬件虚拟化
软件虚拟化如qemu,对物理平台的访问与截获,说白了就是在硬件与软件中多了一层软件,效率可想而知。
硬件虚拟化是硬件处理器支持虚拟化,效率大大提高。
3、kvm本身不执行任何模拟
需要用户空间的qemu进行模拟
4、kvm可以使用linux支持的任何存储来存储虚拟机镜像
包括具有IDE、SCSI和SATA的本地磁盘,网络附加存储(NAS),或者支持iSCSI和光前通道SAN
5、kvm的原生磁盘格式为QCOW2
支持快照,徐云多级快照、压缩和加密
6、x86下的两种虚拟化模型
物理硬件-虚拟机监控器-操作系统:此种模型的代表有微软的Hyper-V、xen以及VMware的ESX/ESXi,该模型会有一特殊的虚拟机提供用户的管理操作。
物理硬件-操作系统-虚拟机监控器:kvm属于这类。
7、kvm模块
kvm模块是kvm虚拟机的核心部分,其主要功能是初始化CPU硬件,打开虚拟化模式,然后将xuni客户机运行在虚拟机模式下,并对虚拟客户机的运行提供一定的支持。
8、关于CPU过载的使用
最不推荐的做法让某一个客户机的vCPU数量超过物理系统上存在的CPU数量。比如,拥有4个逻辑CPU的宿主机中,同时运行一个或多个客户机,其中每个客户机的vCPU数量多于4个(如16个)。这样的使用方法会带来比较明显的性能下降,其性能反而不如为客户机分配2个(或4个)vCPU的情况,而且客户机中负载过重,可能会让整个系统运行不稳定。不过,在并非100%负载的情况下,一个或(多个)有4个vCPU的客户机运行在拥有4个逻辑CPU的宿主机中并不会带来明显的性能损失。
9、CPU独占
第一步:启动宿主机时隔离指定数量CPU(修改grub)
第二步:启动客户机(指定了CPU数量),使用taskset命令将QEMU进程和vCPU线程绑定到指定物理CPU
10、内存过载
一般来说客户机操作系统上的应用程序并非一直100%的利用其分配到的内存,并且宿主机上的多个客户机一般也不会同时达到100%的内存使用率,所以内存过载分配是可行的,一般来说有如下三种方式实现内存过载使用:
1)内存交换(swapping):用交换空间来弥补内存不足
2)气球(ballooning):通过virio_balloon驱动来实现宿主机Hypervisor和客户机之间的协作
3)页共享(page sharing):通过KSM(Kernel Samepage Merging)合并多个客户机进程使用的相同内存页
如何计算应该分配的交换空间大小以满足内存的过载使用:
某个服务器有32GB的物理内存,想在其上运行64个内存配置1GB的客户机。在宿主机中,大约需要4GB大小的内存来满足系统进程、驱动、磁盘缓存及其他应用程序所需内存(不包括客户机进程所需内存)。计算过程如下:
客户机所需交换分区为:64 x 1GB+4GB-32GB=36GB。
根据Redhat的建议[注释],对于32GB物理内存的RHEL系统,推荐使用8GB的交换分区。
所以,在宿主机中总共需要建立44GB(36GB+8GB)的交换分区来满足安全实现客户机内存的过载使用。
这篇关于kvm随笔(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门