当前位置:首页 > 虚拟机 > 正文

kvm虚拟机需要哪些技术


一、[转载]VirtFS虚拟化技术简介

深度探索:VirtFS虚拟化技术的卓越之旅


在虚拟化技术的群星之中,VirtFS就像一颗璀璨的明珠,坐落在系统层虚拟化的星空中,提供高性能文件共享的独特解决方案。该技术由VirtFSServer和VirtFSClient构建,通过QEMU-KVM的VirtIO技术和9P2000.L协议,实现主机和虚拟机之间的无缝文件共享,超越了传统的虚拟块设备。


9P协议由贝尔实验室开发,最初设计的目的是访问分布式Plan9系统中所有以文件形式存在的资源。它定义了13对操作,包括文件、元数据和协议相关的操作。虽然9P本身不包含权限管理,但通过与认证系统结合,实现了强大的访问控制。从Linux2.6.14开始,不断扩展对9P协议的支持,并通过模块化加载,逐渐在Linux世界扎根。与Plan9的VFS相比,9P2000.u版本增加了数字ID管理和部分POSIX兼容性,但在权限管理和扩展功能方面仍然存在限制。


扩展接口,如Tversion到Rerror,进一步支持LinuxVFS兼容性。9P2000.L改进了目录和节点操作,但并非所有功能都详细说明。VirtIO诞生于RustyRussell的智慧,为虚拟化环境中的性能提升提供了强有力的支持,例如在KVM和Lguest中,它通过虚拟排队技术实现高效的驱动级通信。


在KVM架构中,VirtIO的前端驱动(例如virtio-blk和virtio-net)运行在客户端,后端处理通过QEMU的灵活连接在QEMU中进行虚拟队列,保证性能和兼容性之间的平衡。VirtIO使用环形缓冲区(virtio-ring)来优化I/O、批量处理请求并减少与主机设备驱动程序的交互,从而提供接近本机的性能,但需要客户端安装特定的驱动程序。


挂载VirtFS相对复杂,需要全面支持QEMU并激活9P协议。在Centos6.5中,用户可能需要重新编译QEMU并配置内核以支持9P。启动虚拟机时,请务必指定virtio-9p-pci和VirtFS参数,以确保正确安装。


VirtIO:通过环形缓冲区提高效率,但需要特定驱动支持
VirtFS:组装不错,QEMU和9P协议缺一不可,Centos环境必须适配QEMU
内核配置:启用9P和VirtIO支持
启动虚拟机:使用VirtFS参数启动

QEMU提供了很多选项,比如local、handle和proxy,每个选项都有具体功能。例如,id用于设备标识,对客户端不可见,path指定VirtFS提供访问虚拟机的主机文件路径。通过security_model设置访问权限,打印支持立即写回,保证数据一致性。VirtFS在性能测试中表现良好例如,与IDE硬盘相比,VirtFS在无缓存的读写速度上具有显着优势,尤其是在处理小文件时。


表1:磁盘I/O连续读取性能比较(KB/s,顺序/随机)


表5:默认msize设置下、VirtFS性能对比


综上所述,在不依赖缓存的情况下,VirtFS因其优越的文件系统性能成为虚拟化环境中的首选。不过,文件块大小对VirtFS的性能影响很大,当msize足够大时,带来的好处会根据文件块大小的不同而有所不同。


在探索VirtFS的过程中,我们参考了很多权威资料,包括Linux-KVM官方文档、QEMU9P设置指南、kernel9P文档以及Wikipedia的相关章节。对VirtFS的深入了解将帮助我们更好地在虚拟化世界中利用这项技术的力量。


二、关于kvm虚拟机的问题,困扰很久,求助高手

Kernel-basedVirtualMachine是一个开源系统虚拟化模块,自Linux2.6.20以来已集成到所有主要Linux发行版中。由于它使用Linux自带的调度器进行管理,因此核心源码相比Xen要小很多。KVM现在是学术界主流的VMM之一。

KVM虚拟化需要硬件支持,比如IntelVT技术或者AMDV技术。基于硬件的完全虚拟化。早期的Xen是基于软件模拟的半虚拟化,而较新的版本则基于硬件支持的全虚拟化。不过Xen本身有自己的进程调度器、存储管理模块等,所以代码比较庞大。广泛分布的商业系统虚拟化软件VMwareESX系列是利用软件模拟完成虚拟化。