KVM(kernel-based VM)和它的伙伴

举报
黄生 发表于 2022/12/31 20:03:09 2022/12/31
【摘要】 云计算和虚拟化https://bbs.huaweicloud.com/blogs/385805接上文2008年redhat收购Qumranet,开始以KVM替换Xen。2011年,redhat,ibm,hp,intel成立了开放虚拟化联盟Open Virtualization AllianceKVM本身不执行任何模拟。它要搭配QEMU。KVM准虚拟化的驱动程序使用IBM和redhat联合Li...

云计算和虚拟化
https://bbs.huaweicloud.com/blogs/385805
接上文

2008年redhat收购Qumranet,开始以KVM替换Xen。2011年,redhat,ibm,hp,intel成立了开放虚拟化联盟Open Virtualization Alliance

KVM本身不执行任何模拟。它要搭配QEMU。

image.png

KVM准虚拟化的驱动程序使用IBM和redhat联合Linux社区开发的Virtio标准。
准虚拟化的驱动程序安装在客户机OS中,允许虚拟机使用优化的IO接口而不使用模拟的设备,从而为网络和块设备提供高性能IO。

QEMU是一个开源项目,是一台硬件模拟器,可以模拟很多架构的处理器和多种设备。它是纯软件模拟,速度很慢。所以QEMU可以借助KVM来加速性能。

libvirt是虚拟化管理工具。包括一套API,libvirtd服务,命令行virsh。
它的设计目标是用统一的方式管理不同的虚拟化引擎(实际上还是KVM使用,其他Xen,Hyper-V,VMware ESX等有自己的,不和它玩)
它实现对虚拟机的管理(存储池管理、网络管理)、设备的热添加。

Screenshot from 2022-12-31 13-26-58.png

virt-manager里可以安装、启动、打开虚拟机。也可以用virt-viewer打开/连接上虚拟机

Screenshot from 2022-12-31 18-15-44.png

KVM背靠linux,围绕KVM的是一个开源的生态链,从底层的Linux系统到中间层的libvirt管理工具,再到云管理平台openstack,莫不如此。

企业级虚拟化产品常见的有4款:VMware, Hyper-V, Xen, KVM

  1. Vmware是x86平台最早的虚拟化引擎,1994年就发布了第一款产品。VMware和网络存储厂商在协议层面也有一些私有协议,许多主流厂商都支持VMware的一些专用协议,与VMware一起形成一个生态链。传统关键行业用的较多。
  2. Hyper-V,微软的产品,成本较低。使用Windows系统的企业用的较多。
  3. Xen,也是很早的开源的虚拟化引擎。后来被Citrix思杰收购,推出叫XenServer的Hypervisor,于2013年底宣布免费。Xen技术积累多的企业用的比较多。
  4. KVM,年轻,开始就支持硬件虚拟化技术,没有历史包袱。开源方案的主流选择,国内公有云都采用KVM。

image.png

KVM中的内存结构。
EPT技术。EPT是Extended Page Tables,是Intel开创的硬件辅助内存虚拟化技术(BIOS里打开VT即可)。有了EPT,能够将虚拟机的物理地址直接翻译为宿主机的物理地址。
KSM Kernel Samepage Merging,相同页面内存压缩技术,是一把双刃剑。
内存限制技术,memtune。

kvm-qemu安装后检查一下:

#ls /usr/share/qemu/ -F
bios-microvm.bin  linuxboot_dma.bin  pxe-ne2k_isa.rom@  sgabios.bin
firmware/         multiboot.bin      pxe-pcnet32.rom@   skiboot.lid
init/             OVMF.fd@           pxe-rtl8139.rom@   trace-events-all
keymaps/          palcode-clipper*   pxe-virtio.rom@    vhost-user/
kvmvapic.bin      pvh.bin            s390-ccw.img*
linuxboot.bin     pxe-e1000.rom@     s390-netboot.img*

看一下磁盘分区,然后可以建立pv,vg,lv,然后可以创建文件系统

#lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931.5G  0 disk 
├─sda1        8:1    0   128M  0 part 
├─sda2        8:2    0 736.1G  0 part /media/D
├─sda3        8:3    0  93.1G  0 part /
├─sda4        8:4    0  93.1G  0 part /home
└─sda5        8:5    0   9.1G  0 part [SWAP]
nvme0n1     259:0    0 238.5G  0 disk 
├─nvme0n1p1 259:1    0   250M  0 part /boot/efi
├─nvme0n1p2 259:2    0   128M  0 part 
├─nvme0n1p3 259:3    0   220G  0 part 
├─nvme0n1p4 259:4    0  1012M  0 part 
├─nvme0n1p5 259:5    0  15.7G  0 part 
└─nvme0n1p6 259:6    0   1.4G  0 part 

最后简述一下VMM的安装和使用

#检查CPU硬件虚拟化支持
grep -Eoc '(vmx|svm)' /proc/cpuinfo 
sudo apt install cpu-checker -y
kvm-ok 
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager 
sudo systemctl is-active libvirtd
echo $USER
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
#注销后重新登录,然后就是启动VMM
#ubuntu20.04如果从菜单启动,因为权限的原因连不上kvm/qemu。所以用sudo virt-manager来启动就可以。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。