KVM简单优化

        KVM的存储有多重方式,可以基于虚拟磁盘文件,基于文件系统,基于设备等,创建kvm虚拟机时默认使用虚拟磁盘文件,虚拟机认为这是真实的磁盘,实际上是模拟硬盘的文件,这一层会降低系统的速度。基于文件的虚拟机都有一个缺点是虚拟机的磁盘文件不能直接读写kvm的存储设备,而是写入宿主机上的文件系统。基于设备的虚拟机,支持四种不同的物理存储设备:磁盘,逻辑盘,ISCSI,SCSI。磁盘方式直接读写硬盘设备,缺点是磁盘大小是固定的,不能动态扩容,且不支持快照,使用LVM则可以解决以上问题,但是虚拟磁盘也有虚拟磁盘的优势,比如加密、快照之类的性能。具体选择哪种存储方式根据需求而定。


        在决定使用磁盘镜像作为存储方式时最好选用raw格式,raw的优势是效率高,能直接读写磁盘,而且其他大多数虚拟机也支持这种格式,qcow2的优势是加密功能,快照功能,磁盘压缩功能等。如果想追求更高的性能话还是推荐使用raw格式,在虚拟机的cache模式是off,writethrough,writeback时raw格式的测试均比qcow2要好一些,但相差不大。


         Linux 内核支持多种虚拟化模式,并且支持的数量随着虚拟化的进步和新模式的出现(例如 lguest)而增加。但是,让这些虚拟化模式能够在 Linux 之上运行之后,又如何让它们能够在 I/O 虚拟化方面利用底层内核呢?答案是使用 virtio。在虚拟机的启动参数中不论是网络设置还是磁盘设置都设置模式为virtio模式,设置宿主机的cpu调度策略为deadline,设置虚拟机的调度策略为noop,在虚拟机的fatab中设置noatime,nodiratime等措施都可以增加虚拟机的性能。


         虚拟机网卡使用virtio模式:默认情况下不对网卡进行特殊配置的话网卡默认使用rtl8139或者e1000,编辑文件 /etc/initramfs-tools/modules,在其中加入virtio, virtio_pci, virtio_ring, virtio_net, virtio_blk,然后使用update-initramfs –u更新initramfs,接着关闭虚拟机,再次启动虚拟机时在-net nic后面指定网卡模式,即加入model=virtio。注意内核要大于2.6.25,因为在2.6.25以后内核才包含virtio_*drivers。

你可能感兴趣的:(优化,kvm)