KVM(kernel-based VM)和它的伙伴
云计算和虚拟化
https://bbs.huaweicloud.com/blogs/385805
接上文
2008年redhat收购Qumranet,开始以KVM替换Xen。2011年,redhat,ibm,hp,intel成立了开放虚拟化联盟Open Virtualization Alliance
KVM本身不执行任何模拟。它要搭配QEMU。
KVM准虚拟化的驱动程序使用IBM和redhat联合Linux社区开发的Virtio标准。
准虚拟化的驱动程序安装在客户机OS中,允许虚拟机使用优化的IO接口而不使用模拟的设备,从而为网络和块设备提供高性能IO。
QEMU是一个开源项目,是一台硬件模拟器,可以模拟很多架构的处理器和多种设备。它是纯软件模拟,速度很慢。所以QEMU可以借助KVM来加速性能。
libvirt是虚拟化管理工具。包括一套API,libvirtd服务,命令行virsh。
它的设计目标是用统一的方式管理不同的虚拟化引擎(实际上还是KVM使用,其他Xen,Hyper-V,VMware ESX等有自己的,不和它玩)
它实现对虚拟机的管理(存储池管理、网络管理)、设备的热添加。
virt-manager里可以安装、启动、打开虚拟机。也可以用virt-viewer打开/连接上虚拟机
KVM背靠linux,围绕KVM的是一个开源的生态链,从底层的Linux系统到中间层的libvirt管理工具,再到云管理平台openstack,莫不如此。
企业级虚拟化产品常见的有4款:VMware, Hyper-V, Xen, KVM
- Vmware是x86平台最早的虚拟化引擎,1994年就发布了第一款产品。VMware和网络存储厂商在协议层面也有一些私有协议,许多主流厂商都支持VMware的一些专用协议,与VMware一起形成一个生态链。传统关键行业用的较多。
- Hyper-V,微软的产品,成本较低。使用Windows系统的企业用的较多。
- Xen,也是很早的开源的虚拟化引擎。后来被Citrix思杰收购,推出叫XenServer的Hypervisor,于2013年底宣布免费。Xen技术积累多的企业用的比较多。
- KVM,年轻,开始就支持硬件虚拟化技术,没有历史包袱。开源方案的主流选择,国内公有云都采用KVM。
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来启动就可以。
- 点赞
- 收藏
- 关注作者
评论(0)