KVM虚拟化

Posted 袁❈晔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟化相关的知识,希望对你有一定的参考价值。

什么是虚拟化

  •  虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机(对计算机物理资源的抽象,实现资源的模拟、隔离和共享)。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
  •  虚拟化是一种资源管理技术,打破实体结构的不可分割的障碍,可以对数据中心的所有资源进行虚拟化和管理,可以实现服务虚拟化、存储虚拟化、网络虚拟化和桌面虚拟化。
  •  在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的、旧的硬件产能过低的重组、重用,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用。

虚拟化技术

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率,例如ensp、workstation等
 在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(nginx和tomcat),从而实现一台宿主机搭建一个集群
 通过软件/应用程序的方式,来实现物理硬件的功能,例:ensp以软件形式实现物理设备的功能(二层交换机、路由器、三层交换机等)


KVM架构

KVM虚拟化架构(三种模式)

1.客户模式(guestOs) :VM中的OS为Guestos
客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:
2.用户模式:
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
3.linux内核模式
模拟CPU、 内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下
 

KVM的核心组件

  • 在内核层:将物理资源逻辑分割为虚拟化资源
  • 在抽象层:Qemn组件,会和内核层的KVM进行对接,调用所需的资源

KVM工作流程

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

部署KVM虚拟化

实验准备:

虚拟机设置–处理器–勾选虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI(V)
添加磁盘并给大的内存(300GB)

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

mkdir /mount
vim /etc/fstab
/dev/cdrom /mount iso9660 defaults 0 0

设置DNS反向解析,设置为NO 可以让客户端ssh连接服务器

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

制作本地YUM仓库

cd /etc/yum.repos.d/
mkdir bak
mv CentOS-* bak
vim local.repo
[local]
name=kvm
baseurl=file:///mount		
gpgcheck=0
enable=1
yum clean all
yum makecache

安装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		        #图形界面管理虚拟机
cat /proc/cpuinfo | grep vmx		    #检测cpu是否支持虚拟化

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

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

设置KVM网络

KVM网络的两种模式:

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

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

mkdir -p /data_kvm/iso		                               #创建KVM存储镜像的目录
mkdir -p /data_kvm/store		                           #创建存储池的目录
mkdir /abc
cd /abc/		                                           #上传虚拟机的镜像文件
CentOS-7-x86_64-DVD-1810-7.6.iso	                       #使用XFTP 7 上传文件
cp -p CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/	   #需要确保属主属组是root

以上是关于KVM虚拟化的主要内容,如果未能解决你的问题,请参考以下文章

kvm虚拟机配置被克隆rhel6客户机的网卡

从DOM到虚拟DOM——前端DOM发展史性能与产能双赢背后的思考

KVM虚拟化之KVM基本管理

搭建kvm虚拟化平台和管理kvm虚拟化平台

搭建kvm虚拟化平台和管理kvm虚拟化平台

搭建kvm虚拟化平台和管理kvm虚拟化平台