半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化 您所在的位置:网站首页 半虚拟化和全虚拟化 半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化

2024-06-26 14:47| 来源: 网络整理| 查看: 265

一、虚拟化技术

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率。

二、虚拟化技术发展

雏形: 1961年,IBM709机器实现了分时系统,将CPU占用切分为多个极短的时间片(1/100sec)每一个时间片执行不同的工作,通过对这些时间片进行轮询从而将一个CPU伪装成多个CPU

1972年, IBM正式将system370机的分时系统命名为虚拟机

1990年, IBM推出的system390机支持逻辑分区(将一个CPU分为多份,相互独立,也就是逻辑分割)

Xen 2003年问世,是一个外部的hypervisor程序(虚拟机管理程序),能够控制虚拟机和给多个客户机分配资源

KVM:2007年问世,现已内置在kernel内核中的

三、虚拟化类型

虚拟化类型 1、全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用 使用的方法:使用hypervisor(VMM)软件,其原理是在底层硬件和服务器之间建立一个抽象层,而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令,为指令访问硬件控制器和外设充当中介。

2、半虚拟化:需要修改操作系统

3、直通:直接使用物理硬件资源(需要支持,还不完善)

Xen 支持的虚拟化技术:全虚拟化,半虚拟化 KVM:支持的虚拟化技术:全虚拟化

四、虚拟化的特性

优势 ① 集中化管理(远程管理、维护) ② 提高硬件利用率(物理资源利用率低-例如峰值,虚拟化解决了“空闲”容量) ③ 动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性) ④ 高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)

劣势 ① 前期高额费用(初期的硬件支持) ② 降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化) ③ 更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏) ④ 实施配置复杂、管理复杂(管理人员运维、排障困难) ⑤ 一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用) ⑥ 安全性(虚拟化技术自身的安全隐患)

五、KVM5.1、KVM简介

广义KVM: KVM(Kernel-based Vritual Machine)–基于内核的虚拟机 KVM 是基于虚拟化扩展的X86硬件的开源Linux原生的全虚拟化方案(要求cpu支持Intel-VT-x或AMD-V) KVM内嵌于内核模块中,模拟处理器和内存以支持虚拟机运行 虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度; 虚拟机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能 但KVM本身不执行任何模拟。需要客户空间程序(虚拟机)通过/dev/kvm(此虚拟设备需要开起硬件辅助虚拟化才能看到)接口设置一个客户机虚拟服务器的地址空间, 并且由Qemu模拟I/O(ioctl)进行调度资源和维护管理

Libvirt:KVM的管理工具,除了可以管理KVM这类VMM,还可以管理Xen,VirtualBox,甚至OpenStack底层

Libvirt包含3个组件:后台daemon程序libvirtd、API库、命令行工具virsh

5.2、KVM架构及简介

KVM 虚拟化架构/三种模式 客户模式:执行非I/O的客户代码,虚拟机运行在这个模式 用户模式: 代表用户执行I/O指令,QEMU运行在这个模式 内核模式:实现客户模式的切换,处理因为I/O或者其他指令引起的从客户模式推出,KVM模块工作在这个模式

5.3、KVM工作流程

 

用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVM驱动为虚拟机创建虚拟 CPU 和虚拟内存,然后执行 VMLAU·NCH 指令进入客户模式,装载 Guest OS 并运行。Guest OS 运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内核模式来处理这些异常。

内核模式处理这些异常时如果不需要 I/O则处理完成后重新进入客户模式。如果需要 I/O 则进入到用户模式, 则由 Qemu 来处理 I/O,处理完成后进入内核模式,再进入客户模式。

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_kvm

六、搭建KVM虚拟机1、虚拟机设置如下:

硬盘内存大小为300G左右

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_IPV6_02

2、搭建实验环境[root@localhost ~]# hostnamectl set-hostname kvm [root@localhost ~]# bash [root@kvm ~]# vim /etc/ssh/sshd_config ##关闭反解DNS UseDNS no [root@kvm ~]# systemctl stop firewalld [root@kvm ~]# setenforce 03、安装KVM[root@kvm ~]# yum -y install qemu-kvm ##安装KVM模块 [root@kvm ~]# yum -y install virt-install ##构建虚拟机的命令行工具 [root@kvm ~]# yum -y install qemu-img ##qemu 组件,创建磁盘、启动虚拟机等 [root@kvm ~]# yum -y install bridge-utils ##网络支持工具 [root@kvm ~]# yum -y install libvirt ##虚拟机管理工具 [root@kvm ~]# yum -y install virt-manager ##图形界面管理虚拟机4、检测CPU是否支持虚拟化[root@kvm ~]# cat /proc/cpuinfo | grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx f xsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable n onstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadlin e_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbas e tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx f xsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable n onstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadlin e_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbas e tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx f xsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable n onstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadlin e_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbas e tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx f xsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable n onstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadlin e_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbas e tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat [root@kvm ~]# lsmod | grep kvm kvm_intel 170086 0 kvm 566340 1 kvm_intel irqbypass 13503 1 kvm5、设置开启启动界面的显示模式[root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target6、设置KVM网络

KVM网络的两种模式: ① NAT: 默认设置,数据包由 NAT 方式通过主机的接口进行 传送,可以访问外网,但是无法从外部访问虚拟机网络 ② 网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)

1、修改ens-33网卡

[root@kvm iso]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=aac61931-47a6-40e5-9511-68adf20e97c5 DEVICE=ens33 ONBOOT=yes #IPADDR=192.168.132.40 #PREFIX=24 #GATEWAY=192.168.132.2 BRIDGE=br0

2、增加br0网卡

[root@kvm iso]# vi /etc/sysconfig/network-scripts/ifcfg-br0 TYPE=Bridge BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.132.40 NETMASK=255.255.255.0 GATEWAY=192.168.132.27、创建KVM存储和镜像数据的目录、上传centos7镜像[root@kvm ]# mkdir -p /data_kvm/iso [root@kvm ]# mkdir -p /data_kvm/store [root@kvm iso]# ll 总用量 4415488 -rw-r--r--. 1 root root 4521459712 12月 8 23:55 CentOS-7-x86_64-DVD-1708.iso8、使用虚拟系统管理器管理虚拟机[root@kvm iso]# virt-manager

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_IPV6_03

9、创建存储池

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_IPV6_04

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_ci_05

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_kvm_06

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_IPV6_07

创建存储池存储镜像

10、创建存储卷

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_kvm_08

11、创建虚拟机

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_虚拟化_09

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_ci_10

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_kvm_11

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_IPV6_12

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_kvm_13

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_虚拟化_14

12、进行安装步骤

选择中文,选择最小化安装,设置root密码

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_IPV6_15

半虚拟化类虚拟化和全虚拟化的区别 全虚拟化与半虚拟化_kvm_16

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有