首页 > 编程知识 正文

开源的虚拟化技术都为一型虚拟化,kvm工作原理

时间:2023-05-04 07:31:09 阅读:164804 作者:1030

深入了解KVM虚拟化原理的KVM体系结构基本虚拟化机器(KVM )包括处理器基础虚拟化、可加载核心模块(KVM.ko ) KVM-Intel.ko或KVM是内核的模块,用户空间通过QEMU仿真硬件提供给虚拟机,一台虚拟机是典型的Linux进程。 通过管理此进程,可以完成虚拟机管理的qemu QEMU本身不是KVM的一部分,而是有名的开源虚拟机软件,与KVM不同,QEMU是纯软件实现,因此性能会下降但是,具有可以模拟很多硬件的优点。 以盖房子为例,KVM可以理解为开发商。 房子建得很好,但不能装修。 qmu可以理解为装修公司。 房子盖得不好,但装修得很好。 我们用KVM搭建房屋,实现硬件虚拟化、CPU和内存计算资源仿真,QEMU装修、软件仿真、网卡、显卡、存储控制器KVM是内核模块,没有用户控件的管理工具。 KVM虚拟机可以通过QEMU的管理工具进行管理,QEMU也可以通过KVM加速。 提高虚拟机性能Libvirt Libvirt是一种开源虚拟化管理工具,Libvirt的设计目标是用同样的方法管理不同的虚拟化引擎,如KVM、Xen、hypen。目前,在许多场景中,Libvirt都是一组API的lib库,支持c、Python等主要编程语言。 Libvirtd服务。 命令行工具virsh虚拟机的概念虚拟机是一个运行于物理服务器上的完整系统,具有自己的虚拟CPU、内存、磁盘、网卡等虚拟硬件资源。 虚拟硬件信息在虚拟机配置文件中定义。 虚拟机上的操作系统和APP操作行为与普通物理计算机上的行为相同。 虚拟机的xml描述文件存储在物理机**/etc/libvirt/qemu**中,xml文件描述该虚拟机的硬件配置信息。 MyVM.xm虚拟CPU实现原理基于X86处理器的虚拟化X86体系结构包含17条敏感的非特权指令,在运行时不会出现异常。 如果这些指令在客户的操作系统中执行,整个系统将被破坏

基于VMX处理器的虚拟化硬件辅助虚拟化解决敏感的非特权指令无法解决问题。 引入VMX模式(虚拟机器扩展) )。

基于VMCS处理器的虚拟化客户端状态域,用于存储VCPU在非根模式下的操作状态; 主机状态域:保存根操作模式下CPU的操作状态; vmexecutioncontroldomain :控制发生VM-exit操作时的行为。 例如,控制特定机密指令、异常或中断是否导致了VM-exit操作。 VM-Entry控制域和VM-Exit控制域:控制规定VM-Entry和VM-Exit操作的具体操作; VM-Exit信息域:存储VM-Exit的原因

虚拟CPU将为每个虚拟机分配时间片,并按顺序执行。 在虚拟化APP应用环境中,每个高效利用CPU资源的虚拟机(VM )都是虚拟机操作系统内核的进程,每个进程都有一个时间片。 这意味着允许虚拟机运行的时间是每个虚拟机)虚拟机)是虚拟机操作系统内核的进程,每个进程都有一个时间片。 这意味着,如果虚拟机在允许虚拟机运行的时间片结束之前阻塞或终止,CPU将立即切换。 充分利用CPU资源默认情况下,所有虚拟机都被视为同等重要。 具有相同时间片长度的CPU的操作模式custom (推荐):QEMU模拟CPU,类型为qemu64兼容良好,但无法为虚拟机提供最佳性能。 主机模式: QEMU模拟的接近主机CPU的CPU (如aes加密)性能尽可能接近主机CPU,但迁移兼容性较差。 host-passthrough :主机CPU型号和大多数功能都传递给虚拟机,性能最好,但迁移不兼容,同一制造商不同代的CPU也可能无法迁移。 虚拟内存实现原理内存虚拟化-虚拟机的物理地址

内存虚拟化-可扩展页表(ept ) )

虚拟硬盘实现原理虚拟机磁盘类型KVM使用的虚拟机磁盘主要有以下类型: IDE硬盘高速硬盘(Virtio硬盘,默认)虚拟磁盘类型虚拟机磁盘同时支持块设备和文件。 当虚拟机的磁盘需求较高时,可以使用块设备,如Oracle数据库。 为虚拟机磁盘选择文件类型时,支持的存储卷格式支持智能(QCOW2)和快速(QCOW2)两种格式,建议采用智能格式(动态磁盘空间分配、快照)

如果智能存储卷中虚拟机的虚拟磁盘使用智能格式,则必须以文件形式向虚拟机提供虚拟磁盘。 虚拟磁盘文件使用qcow2文件格式。 Qcow2文件的开头2M是Qcow2标题,记录了文件大小、L1表的实际地址和快照信息等重要数据的L1表或L2表的实际地址信息的L1表或L2表的实际地址信息数据表

虚拟网卡输入/输出设备虚拟化网卡虚拟化(SR-IOV,singlerooti/ovirtualizationandsharing )技术使用一个物理网卡虚拟化多个虚拟网络

卡; VT-d(Intel® Virtualization Technology for Directed I/O) 技术将网卡分配给虚拟机。 虚拟网卡 KVM中虚拟机的网卡是通过QEMU模拟实 现的,包括了普通网卡、Intel E1000和 Virtio网卡 普通网卡:模拟了RealTek Link 8139百兆 网卡 l Intel e1000网卡:模拟了Intel 82540E千 兆网卡 Virtio网卡:虚拟化内核平台软件驱动的网 卡,速度最快、功能最全,推荐使用 (CSMP中部分虚拟机默认) 虚拟网卡IO处理

虚拟交换机 虚拟交换机是通过软件模拟的、 具有实体交换机系统功能的网 络平台。 为虚拟机、主机、外部网络提 供网络连接。 每个上行端口对应一个物理适 配器,多对上行端口和物理适 配器时可做聚合,达到链路冗 余。 KVM常用的命令 virsh相关 cat /proc/cpuinfo | grep -E ‘(vmx|svm)’ ##确认CPU是否支持虚拟化 [root@ostack1 home]# cat /proc/cpuinfo | grep -E '(vmx|svm)'flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch epb tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt dtherm ida arat pln pts virsh list ##查看正在运行的虚拟机 [root@ostack1 home]# virsh list Id Name State---------------------------------------------------- 2 csmpha-master running 52 instance-00000037 running 53 instance-00000038 running 54 instance-00000039 running 59 instance-0000003b running 60 instance-0000003c running 63 instance-0000003f running 64 instance-0000003e running virsh list --all ##查看所有的虚拟机 [root@ostack1 home]# virsh list --all Id Name State---------------------------------------------------- 2 csmpha-master running 52 instance-00000037 running 53 instance-00000038 running 54 instance-00000039 running virsh start/shutdown windows ##开启关闭windows的主机 virsh destroy win7 ##关闭名字为win7的虚拟机,类似直接给虚拟机关闭电源 virsh reboot win7 ##重起虚拟机 virsh suspend win7 ##暂停虚拟机 virsh resume win7 ##暂停之后恢复虚拟机 virsh define /etc/libvirt/qemu/win7.xml ##根据文件定义生成一个虚拟机 virsh undefine win7 ##取消定义,即删除win7虚拟机 virsh edit win7 ##编辑虚拟机 systemctl restart libvirtd ##重启libvirt-jjddx 磁盘相关的命令 df –Th 查看分区以及空间使用情况 qemu-img info win7.qcow2 ##查看名字为win7.qcow2的虚拟机磁盘文件物理信息 qemu-img info win7.qcow2 ##查看名字为win7.qcow2的虚拟机磁盘文件物理信息 qemu-img create win7-2.qcow2 -f qcow2 5G ##创建一个磁盘文件,格式为qcow2,5G大小 qemu-img convert -f raw -O qcow2 123.raw 123.qcow2 ##将raw格式的磁盘修改为qcow2 qemu-img snapshot -c test2 /vms/2T/ucen ##给虚拟机磁盘文件创建快照 qemu-img snapshot –l /vms/2T/ucen ##查看虚拟机磁盘文件的快照信息 qemu-img snapshot -a test2 /vms/2T/ucen ##使用磁盘文件的快照恢复 qemu-img resize win7.qcow2 +1G ##给磁盘文件增加1GB空间(只能增加,不能减小) qemu-img rebase -u -b /vms/test/VSR_base_1 VSR ## 设置磁盘的base文件,用于三级镜像 文件切换路径,修改base文件等 网络相关的命令 ovs-vsctl list-br ##列出所有网桥信息 ovs-vsctl list-br ##列出所有网桥信息 ovs-vsctl add-port vswitch1 eth1 ##将eth1挂接到vswitch1上 ovs-vsctl list-ports vswitch0 ##列出挂接到vswitch0上的接口 ovs-vsctl port-to-br eht0 ##列出已挂接eth ovs-vsctl show ##查看网桥信息 ovs-vsctl del-port vswitch1 eth1 ##删除网桥vswitch1上挂接的eth1接口 ovs-vsctl del-br vswitch1 ##删除名为vswitch1的网桥 ifconfig vswitch1 up/down ##将网桥vswitch1 开启、 ovs-ofctl dump-flows br-int ##查看流表信息

r eht0 ##列出已挂接eth

ovs-vsctl show ##查看网桥信息 ovs-vsctl del-port vswitch1 eth1 ##删除网桥vswitch1上挂接的eth1接口 ovs-vsctl del-br vswitch1 ##删除名为vswitch1的网桥 ifconfig vswitch1 up/down ##将网桥vswitch1 开启、 ovs-ofctl dump-flows br-int ##查看流表信息 service openvswitch-switch status/restart/start/stop #查看、重启、启动、关闭虚拟交换机 服

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。