码迷,mamicode.com
首页 > 其他好文 > 详细

kvm虚拟化

时间:2018-12-15 11:49:20      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:存储   domain   timer   分布式   constant   安装   sep   rtu   page   

虚拟化技术有两种类型的实现:
Type-I
hypervisor --> vm
Type-II
host --> vmm --> vms

Xen:
hypervisor, Dom0 kernel

KVM:Kernel-based Virtual Machine,Qumrane公司,依赖于HVM;Inter VT-x,ADM ADM-V;

KVM模块载入后的系统运行模式:
内核模式:GuestOS执行I/O类操作,或其他的特殊指令的操作;称作“来宾-内核”模式;
用户模式:代表GuestOS请求I/O类操作,
来兵模式:GuestOS的非I/O类操作;事实上,它被称作“来宾-用户”模式;

KVM的组件:
两类组件:
/dev/kvm:工作于hypervisor在用户空间,可通过ioctl()系统调用来完成VM创建、启动等管理功能;它是字符设备;
功能:创建VM,为VM分配内存,读写VCPU的寄存器、向VCPU注入终端,运行VCPU等等;
qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备;

KVM特性:
内存管理:
将分配给VM的内存交换至SWAP;
支持使用Huge Page;
支持使用Inter EPT或AMD RVI技术完成内存地址映像;GVA-->GPA-->HPA
支持KSM(Kernel Same-Page Merging)
硬件支持:
取决于Linux内核;
存储:
本地存储:
网络附加存储:
存储区域网络:
分布式存储:例如GlustFS
实时迁移:
支持的GuestOS:
Linux,Windows,OpenBSD,FreeBSD,OpenSolaris;
设备驱动:
IO设备的完全虚拟化:模拟应急
IO设备的半虚拟化:在GuestOS中安装驱动;virtio
virtio-blk,virtio-net,virtio-pci,virtio-console,virtio-ballon

内存虚拟化:
技术分享图片

KVM局限性:
一般局限性:
CPU overcommit
时间记录难以精确,依赖于时间同步机制
MAC地址:
VM量特别大时,存在冲突的可能性;
实时迁移:
性能局限性:

KVM的工具栈:
qemu:
qemu-kvm
qemu-img
libvirt
GUI:virt-manager,virt-viewer
CLI:virt-install,virsh

    QEMU主要提供以下几个部分:
        处理器模拟器
          仿真IO设备
            关联模拟的设备至真实设备;
            调试器
            与模拟器交互的用户接口

KVM管理工具
技术分享图片

virsh的本地模式与远程模式
技术分享图片

实验环境:
操作系统:Centos6.6
IP地址:172.16.100.6
内核:2.6.32-504.el6.x86_64

我这里使用VMware Workstation实验操作,需要在虚拟机Inter VT-x/EPT或AMD-V/RVI(V);
技术分享图片

[root@kvm ~]# hostname kvm.server.com
NETWORKING=yes
[root@kvm ~]# vim /etc/sysconfig/network
HOSTNAME=kvm.server.com
[root@kvm ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.100.6    kvm kvm.server.com

查看是否支持硬件辅助虚拟化;

[root@kvm ~]# grep -E --color=auto "(vmx|svm)" /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon xtopology tsc_reliable nonstop_tsc unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse                                 4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm arat tpr_shadow vnmi ept vpid fsgsbase smep
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon xtopology tsc_reliable nonstop_tsc unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse                                 4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm arat tpr_shadow vnmi ept vpid fsgsbase smep
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon xtopology tsc_reliable nonstop_tsc unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse                                 4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm arat tpr_shadow vnmi ept vpid fsgsbase smep
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx                                  rdtscp lm constant_tsc arch_perfmon xtopology tsc_reliable nonstop_tsc unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse                                 4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm arat tpr_shadow vnmi ept vpid fsgsbase smep

加载kvm核心模块,如果CPU是intel加载相关kvm模块;
[root@kvm ~]# modprobe kvm
[root@kvm ~]# modprobe kvm-intel
[root@kvm ~]# ls /dev/kvm
/dev/kvm

kvm虚拟化

标签:存储   domain   timer   分布式   constant   安装   sep   rtu   page   

原文地址:http://blog.51cto.com/smoke520/2330737

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!