首页 > 编程知识 正文

kvm虚拟化与vmware区别,kvm属于完全虚拟化

时间:2023-05-06 08:54:10 阅读:164803 作者:188

KVM虚拟化技术文档目录KVM虚拟化技术1、虚拟化背景2、虚拟化技术概述2.1虚拟化技术2.2虚拟化技术发展2.3虚拟化类型2.4特性3、KVM3.1广义KVM3.2 KVM体系结构和原理3.3 KVM工作流4、KVM虚拟化平台部署1

一.虚拟化背景

根据美国环境保护EPA报告,EPA的统计数据研究了服务器和数据中心的能效,发现实际上服务器只运行了5%的时间,其他时间一直处于休眠状态

软件资源具有较高的硬件资源性能(没有稳定性和效率) (相同的功能)。) )。

二、虚拟化技术概述2.1虚拟化技术通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多台逻辑计算机。

同时,每台逻辑计算机可以运行不同的操作系统,APP应用可以在独立的空间中运行,而不会相互影响,从而提高计算机的工作效率

1、可以在一个操作系统中(windows10 )模拟多个操作系统(centos、windows10、suse ),并同时在不同的操作系统上运行不同的服务,从而允许一台主机运行一次

电子商务

以软件形式实现物理设备的功能(第2层交换机、路由器、第3层交换机等)。

2.2虚拟化技术发展模式:

1961年,IBM709机器实现了时分系统,将CPU占用分割为多个极短的时间片(1/100sec )分别执行不同的工作,通过轮询这些时间片使一个CPU伪装成多个CPU

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

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

Xen于2003年上市,能够通过外部管理程序/VMM程序(hypervisor )控制汇聚主机,为多个客户端分配资源的KVM3360于2007年上市,目前已嵌入kernel内核

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

2.3虚拟化类型1、全虚拟化:通过软件抽象所有物理硬件资源,最后进行调用

的方法:使用虚拟机管理程序(VMM )软件。 其原理是在底层硬件和服务器之间构建抽象层。 此外,基于核心的虚拟机是用于Linux系统的开源产品虚拟机管理程序(VMM ),可以捕获CPU指令。 为指令访问中介硬件控制器和外围设备。

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

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

2.4特性优势

1、集中管理(远程管理、维护)。

2、提高硬件利用率(物理资源利用率低(例如,在高峰时间,虚拟化将解决“可用”容量) ) ) ) )。

3、动态调整机器/资源配置(虚拟化将系统APP和服务硬件分离,提高了灵活性) )。

4、高可靠性(可以部署其他功能和方案,以改善透明的负载平衡、迁移、复制等APP环境) )。

劣势

1、前期高额费用(初始硬件支持) ) ) )。

2、降低硬件利用率(特定情况-例如,资源密集型APP应用不一定适合虚拟化) )。

3、更大的错误影响面(如果本地物理机宕机,虚拟机将无法使用,虚拟机中的所有文件可能会损坏) )。

4、实施配置复杂,管理复杂(管理员zgdz,排障困难) )。

5、一定限制(虚拟化技术涉及各种限制,需要与支持/兼容虚拟化的服务器、6、APP应用程序和供应商配合使用) 6安全)虚拟化技术本身的安全隐患) )。

三. KVM 3.1广义KVM KVM (kernel-basedvritualmachine ) -基于内核的虚拟机

KVM是一个基于X86硬件的开源Linux本机全虚拟化方案,通过虚拟化进行了扩展。 cpu必须支持英特尔- v t-x或AMD-V。 )

KVM嵌入在内核模块中,模拟处理器和内存以支持虚拟机的运行。 虚拟机作为常规Linux进程实现,并由标准Linux调度程序调度。

虚拟机中的每个虚拟CPU都是作为常规Linux进程实现的。 这样,KMV可以使用Linux内核的现有功能,但KVM本身不执行模拟。 客户端空间程序(虚拟机)通过/dev/kom )接口设置客户端虚拟服务器的地址空间,并使用Qemu模拟I/o ) (ioctl )计划资源

Libvirt3: KVM的管理工具。 不仅是像KVM这样的VMM,Xen、VirtualBox、甚至OpenStack的基础Libvirt上还有三个组件3360后台daemon程序libvirtd、API库、命令

3.2 KVM体系结构和原理KVM虚拟化架构/三种模式

1、客户型号:VM的操作系统是客户操作系统

客户端在操作系统上运行的模式。 客户端分为内核模式和用户模式,如下作为:发挥作用

2、用户模式:

为用户提供管理虚拟机的用户空间工具和代表

户执行I/O,Qemu工作在此模式下(Qemu的主要功能)

3、linux内核模式
模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下

KVM原理
1、Guest:客户机系统,包括CPU (vCPU)、内存、驱动(Console、网卡、I/O设备驱动等),被KVM置于—种受限制的CPU 模式下运行。
2.KVM内核模块模拟处理器和内存以支持虚拟机运行
3、Qemu主要处理l/O以及为客户提供一个用户空间/dev/kvm 工具libvirt来进行虚拟机管理ioctl(定义)专用于设备输入输出操作的系统调用
libvirt: KVM管理工具
以上构成一个完整的虚拟化平台
简单理解:
KVM驱动提供处理器、内存的虚拟化,以及客户机I/O的拦截,guest的I/O被拦截后,交由Qemu处理
Qemu利用接口libkvm调用(ioctl)虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机

3.3 KVM工作流程

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

四、KVM虚拟化平台部署 一、虚拟机资源

CPU:双核双线程-CPU虚拟化开启

内存:8G

硬盘:300G #可以自己外加一块硬盘,但是记得创建磁盘格式化挂载使用

双网卡:单网卡

操作系统:Centos 7.6(1810)

二、实验环境

1、修改主机名

hostnamectl set-hostname kvm su

2、将镜像光盘设为自动/永久挂载

vim /etc/fstab/dev/cdrom /mnt iso9660 defaults 0 0mount -a df -hT/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt

3、环境优化

① 设置DNS反向解析

是否反解DNS,设置为NO可以让客户端连接服务器更快

vim /etc/ssh/sshd_config #115行 取消DNS注释,改为NO UseDNS no

4、制作本地YUM仓库

cd /etc/yum.repos.d/lsmv CentOS-* repo.bakvim local.repo[local]name=kvmbaseurl=file:///abcgpgcheck=0enabled=1yum clean all && yum makecache

5、关闭防火墙、核心防护

systemctl stop firewalldsystemctl disable firewalldsetenforce 0 三、安装KVM

① 安装KVM基本组件

安装 GNOME 桌面环境 如果装了图形界面可以不需要装yum groupinstall -y "GNOME Desktop"# KVM 模块yum -y install qemu-kvm# 安装KVM 调试工具,可不安装yum -y install qemu-kvm-tools# 构建虚拟机的命令行工具yum -y install virt-install# qemu 组件,创建磁盘、启动虚拟机等yum -y install qemu-img# 网络支持工具yum -y install bridge-utils# 虚拟机管理工具yum -y install libvirt# 图形界面管理虚拟机yum -y install virt-manager

以下是安装的内容

yum groupinstall -y "GNOME Desktop"yum -y install qemu-kvmyum -y install qemu-kvm-toolsyum -y install virt-installyum -y install qemu-imgyum -y install bridge-utilsyum -y install libvirtyum -y install virt-manager

检测CPU是否支持虚拟化

cat /proc/cpuinfo | grep vmx

查看CPU是否支持虚拟化

查看KVM模块是否已安装

Lsmod:显示已载入的系统模块

[root@kvm ~]# lsmod | grep kvmkvm_intel 183621 0 kvm 586948 1 kvm_intelirqbypass 13503 1 kvm

② 设置开启启动界面的显示模式

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target 三、设置KVM网络

① NAT 默认设置,数据包由 NAT 方式通过主机的接口进行

传送,可以访问外网,但是无法从外部访问虚拟机网络

② 网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)

使用Bridge网桥模式进行部署

vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO=none'//原本的修改为none'DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="0739b616-18e4-49b1-9a09-f75cc793899b"DEVICE="ens33"ONBOOT="yes"#IPADDR=192.168.233.136#NETMASK=255.255.255.0#GATEWAY=192.168.233.2#DNS1=8.8.8.8#DNS2=114.114.114.114BRIDGE=br0'//注释掉原本的IP地址,添加此处'

创建、编辑桥接网卡

vim /etc/sysconfig/network-scripts/ifcfg-br0 TYPE=BridgeOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=br0DEVICE=br0ONBOOT=yesIPADDR=192.168.126.10 #这里可以改成之前ens33的ip,这样就可以再次连上xshell了NETMASK=255.255.255.0GATEWAY=192.168.126.2 #网卡也跟之前一样

添加上述内容即可

systemctl restart network'//重启网卡'

四、KVM部署与管理

创建KVM存储和镜像数据的目录、上传centos7镜像

mkdir -p /data/data_kvm/iso mkdir -p /data/data/_kvm/store

注:我这里使用windows共享目录给linux使用,直接使用windows里面的镜像文件

smbclient -L 192.168.1.118 #查看window共享文件目录mkdir /gongxiangmount.cifs //192.168.1.118/常用工具 /gongxiang


cp -p CentOS-7-x86_64-DVD-1708.iso /data/data_kvm/iso & #因复制文件较大,可以放后台复制

查看镜像DATA

cd /data/data_kvm/iso/ll -h总用量 4.3G-rwxr-xr-x. 1 qemu qemu 4.3G 10月 29 2017 CentOS-7-x86_64-DVD-1708.iso

使用虚拟系统管理器管理虚拟机

创建思路:

① 创建存储池(ISO、STORE)

② 添加存储卷

③ 创建虚拟机

virt-manager

① 第一步:创建存储池

鼠标双击QEMU/KVM图标

② 创建存储卷

③ 创建虚拟机

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