首页 > 编程知识 正文

开源虚拟化管理平台,kvm虚拟化技术原理

时间:2023-05-04 01:08:02 阅读:136883 作者:946

KVM一、相关简介二、KVM简介三、虚拟化技术发展四、虚拟化三大类五、虚拟化优势六、虚拟化劣势七、KVM虚拟化平台部署7.1虚拟机资源配置7.2环境配置7.3安装KVM7.4KVM网络7.5 KVM部署与管理

一.相关概要

虚拟化技术:通过虚拟化技术将一台计算机虚拟化为多台逻辑计算机,允许一台计算机同时使用多台逻辑计算机

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

二. KVM概述基于KVM(Kernel-basedvritualmachine ) ——内核的虚拟机

KVM是开源Linux本机虚拟化解决方案,基于为虚拟化开发的X86硬件。 处理器必须支持Intel-VT-x或AMD-V。 )

KVM嵌入在内核模块中,模拟处理器和内存以支持虚拟机的运行

虚拟机作为常规Linux进程实现,并由标准Linux调度程序调度。

虚拟机中的每个虚拟CPU都是作为常规Linux进程实现的。 这允许KMV使用Linux内核的现有功能

但是,KVM本身不执行模拟。 客户端空间程序(虚拟机)必须通过/dev/kvm (虚拟设备必须启动硬件辅助虚拟化才能看到)界面设置客户端虚拟服务器的地址空间。

另外,Qemu模拟/o(ioctl )进行调度资源和维护管理

Libvit: KVM的管理工具不仅可以管理KVM这样的VMM,还可以管理Xen、VirtualBox甚至OpenStack的基础

Libvirt有三个组件:后台daemon程序libvirtd. API库,命令行virsh

KVM虚拟化架构及三种模式

客户模型(guestOS ) VM中的操作系统是guestOS

客户端在操作系统上运行的模式。 客户端分为内核模式和用户模式用户模式。

为用户提供管理虚拟机的用户空间工具,并代表用户执行I/O。 Qemu在此模式下工作。 (Qemu的主要功能) linux内核模式

仿真CPU、内存,实现客户模式切换,处理来自客户模式的发售,KVM在此模式下运行KVM原理

Guest )客户端系统,包括CPU(vcpu )、内存、驱动程序控制台、网卡和I/O设备驱动程序

KVM在有限的CPU模式下工作。

KVM内核模块模拟处理器和内存以支持虚拟机的运行

Qemu主要处理I/O,为客户提供虚拟机管理的用户空间/dev/kvm工具libvirt

专用于ioctl (定义)设备输入/输出操作的系统调用

libvirt: KVM管理工具

以上完整的虚拟化平台很容易理解:

KVM驱动程序提供处理器、内存虚拟化以及客户端I/O的屏蔽,来宾I/O被屏蔽后,交给Qemu处理

qmu利用interfacelibkvmcall(ioctl ) VM设备接口/dev/kvm来分配资源、管理和维护虚拟机

KVM工作流程

用户模式Qemu利用接口libkvm通过ioctl系统调用进入内核模式。 KVM驱动程序为虚拟机创建虚拟CPU和虚拟内存,然后运行VMLAU-NCH命令进入来宾模式并加载和运行来宾操作系统。 如果在运行Guest OS时出现异常,请暂停Guest OS的运行并退出内核模式,同时保存当前状态以处理这些异常。

在内核模式下处理这些异常时,如果不需要V/O,请在处理完成后返回客户模式。 需要V/O时进入用户模式,Qemu处理I/O,处理完成后进入内核模式,进入客户模式

三.在虚拟化技术发展的1961年,IBM709机器实现了时分系统,将CPU占用分为多个极短的时间片(1/100sec ),分别执行不同的工作,通过轮询这些时间片

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

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

Xen于2003年推出,通过外部虚拟机管理程序/VMM程序(虚拟机管理程序),可以控制宿主机并为多个客户端分配资源

KVM:2007年登场,现在嵌入kernel内核

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

KVM支持的虚拟机化技术:全虚拟化

四、虚拟化三种全虚拟化:将物理硬件资源全部通过软件抽象,最后进行调用

浪费的方法:使用管理程序(VMM )软件在底层硬件和服务器之间构建抽象层,基于核心的虚拟机在面向Linux系统的开放源代码管理程序(VMM )中捕获CPU的指令半虚拟化:需要更改操作系统直通:直接使用物理硬件资源(需要支持且不完整) ),虚拟化

的优势 集中化管理(远程管理、维护)提高硬件利用率(物理资源利用率低例如峰值,虚拟化解决了"空闲"容量)动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境) 六、虚拟化的劣势 前期高额费用(初期的硬件支持)降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同时可能虚拟机中文件全部损坏)实施配置复杂、管埋复杂(管理人员kfdwbl、排障困难)一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)安全性(虚拟化技术自身的安全隐患) 七、KVM虚拟化平台部署 7.1 虚拟机资源配置 CPU:双核双线程-CPU虚拟化开启内存:8G硬盘:80G #可以自己外加一块硬盘,但是记得创建磁盘格式化挂载使用双网卡:单网卡操作系统:Centos 7.6(1810)

7.2 环境配置

①关闭防火墙和安全机制

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

②修改主机名

hostnamectl set-hostname kvm su -


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

vim /etc/fstab/dev/cdrom /mnt iso9660 defaults 0 0mount -a df -hT



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

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


⑤创建本地YUM仓库

cd /etc/yum.repos.d/mkdir repos.bakmv CentOS-* repo.bakvim local.repo[kvm]name=kvmbaseurl=file:///mntgpgcheck=0enabled=1yum clean allyum repolist


7.3 安装KVM

①安装KVM基本组件

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

②检测CPU是否支持虚拟化

cat /proc/cpuinfo | grep vmx


③查看KVM模块是否已安装

lsmod | grep kvm


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

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

7.4 设置KVM网络

NAT:默认设置,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络

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

这里使用Bridge网桥模式进行部署

vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none #修改为none#IPADDR=192.168.153.88 #IP配置都注释掉#NETMASK=255.255.255.0#GATEWAY=192.168.153.2#DNS1=192.168.153.2DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=1415e5f2-2565-47a5-ad95-898e43f81c66DEVICE=ens33ONBOOT=yesBRIDGE=br0 #设置网桥模式,关联br0网卡


创建、编辑桥接网卡

vim /etc/sysconfig/network-scripts/ifcfg-br0TYPE=BridgeBOOTPROTO=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.153.8 #IP自定义,通过修改Xshell属性的IP地址可再次使用xshll连接NETMASK=255.255.255.0GATEWAY=192.168.153.2systemctl restart network


7.5 KVM部署与管理

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

mkdir -p /data/data_kvm/isomkdir -p /data/data_kvm/store

注:这里是windows系统目录共享给linux系统使用,是使用windows里面的镜像文件

smbclient -L 192.168.153.1 #查看window共享文件目录(windows的IP地址)

mkdir /sharemount.cifs //192.168.153.1/jingxiang /share

cp CentOS-7-x86_64-DVD-1708.iso /data_kvm/iso/ #将镜像文件复制到创建的目录下(镜像文件较大,可加&放到后台进行)cd /data_kvm/iso/ll -h

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

步骤:

创建存储池(ISO、STORE) virt-manager

添加存储卷

创建虚拟机









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